这是我参与11月更文挑战的第11天,活动详情查看:2021最后一次更文挑战
hash散列类似于一个小型的Redis数据库,一个散列可以包含多个键值对,散列的每个键都不能重复,各不相同,无序排列,其值可以是字符串或数字值,对于数字值,可以执行自增或者自减操作
hash 特别适合用于存储对象。
一:字符串结构:
[
"user":[
"camellia1":"90",
"camellia2":"100",
"camellia3":"90"
]
]
二:hash散列类型相关操作命令(PHP+linux)
1:Linux命令使用
(1):添加一个键值对到散列。如果 成功则返回1;如果键已经存在,返回0
hset hash-key camellia1 90 // 返回(integer) 1成功
hset hash-key camellia1 120 // 返回(integer) 0失败,但是值修改成为120
hset hash-key camellia2 120 // 返回(integer) 1成功
hset hash-key lulubin1 90 // 返回 0,由于该键已经存在
(2):hget获取一个给定键camellia的值。
hget hash-key camellia1 // "120"
(3):hgetall 获取所有添加的值
hgetall hash-key
输出:
1) "camellia1"
2) "120"
3) "camellia2"
4) "120"
(4):hdel 删除键值,成功返回1,失败返回0;
hdel hash-key camellia1 // 返回(integer) 1
2:PHP使用:
(1):添加,成功返回1,失败返回0;
$res = $redis->hset("hash-key","camellia1","90");
$res = $redis->hset("hash-key","camellia1","90");
var_dump($res); // 返回1 添加成功
$res = $redis->hset("hash-key","camellia2","120");
// 键已存在,给其设置不同值,直接修改。但是,返回0;
$res = $redis->hset("hash-key","camellia2","150");
(2):查看刚刚添加的所有键值
$array = $redis->hgetall("hash-key");
var_dump($array);
// 输出:
/*array(2) { ["camellia1"]=> string(2) "90" ["camellia2"]=> string(3) "150" }//*/
(3):hget获取键对应的值。
// 获取其中一个建对应的值
$result = $redis->hget("hash-key",'camellia1');
var_dump($result); // 返回90
(4):hdel删除其中一个键。 如果之前键存在于散列中,则返回1,反之,返回0
redis->hdel("hash-key","camellia1"); var_dump($res); // 返回0
三:redis hash 应用场景
1:Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
2:存储部分变更的数据,如用户信息等。
四:其他常用redis命令
序号
命令及描述
1
HDEL key field1 [field2]
删除一个或多个哈希表字段
2
HEXISTS key field
查看哈希表 key 中,指定的字段是否存在。
3
HGET key field
获取存储在哈希表中指定字段的值。
4
HGETALL key
获取在哈希表中指定 key 的所有字段和值
5
HINCRBY key field increment
为哈希表 key 中的指定字段的整数值加上增量 increment 。
6
HINCRBYFLOAT key field increment
为哈希表 key 中的指定字段的浮点数值加上增量 increment 。
7
HKEYS key
获取所有哈希表中的字段
8
HLEN key
获取哈希表中字段的数量
9
HMGET key field1 [field2]
获取所有给定字段的值
10
HMSET key field1 value1 [field2 value2 ]
同时将多个 field-value (域-值)对设置到哈希表 key 中。
11
HSET key field value
将哈希表 key 中的字段 field 的值设为 value 。
12
HSETNX key field value
只有在字段 field 不存在时,设置哈希表字段的值。
13
HVALS key
获取哈希表中所有值
14
HSCAN key cursor [MATCH pattern] [COUNT count]
迭代哈希表中的键值对。
以上基本上是我看的redis HASH散列类型的基本内容,有不足的地方,还请大佬指出。
有好的建议,请在下方输入你的评论。
欢迎访问个人博客 guanchao.site
欢迎访问小程序: