Login
网站首页 > 文章中心 > 其它

Redis之哈希_hashes)类型命令

作者:小编 更新时间:2023-09-29 18:44:00 浏览量:424人看过

Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象.

Redis 中每个 hash 可以存储 232?– 1 键值对(40多亿).

使用场景 :?用户信息

hset : 新建一个哈希表,设置成功返回1,如果已存在覆盖旧值,返回0(值可以为””)

12⑦0.0.1:6379> hset yhq name yhq
(integer) 1
12⑦0.0.1:6379> hset yhq name qhh
(integer) 0

hmset: 新建一个哈希表,设置多个k-v,如果已存在会覆盖,成功返回ok(值可以为””)

12⑦0.0.1:6379> hmsetqhh name yhq age 24 sex 0
OK

hsetnx : 当哈希表不存在时创建并设置且成功返回1,如果已存在无效,返回0

12⑦0.0.1:6379> hsetnx yhqqhh name qhh
(integer) 1
12⑦0.0.1:6379> hsetnx yhqqhh name yhq
(integer) 0

hstrlen : 获取指定字段值的长度

12⑦0.0.1:6379> hmset myhash f1 HelloWorld f2 99 f3 -256
OK
12⑦0.0.1:6379> hstrlen myhash f1
(integer) 10
12⑦0.0.1:6379> hstrlen myhash f2
(integer) 2
12⑦0.0.1:6379> hstrlen myhash f3
(integer) 4

hget : 获取哈希表字段的值,不存在返回nil

12⑦0.0.1:6379> hget yhq name
"qhh"
12⑦0.0.1:6379> hget qhh name
"yhq"
12⑦0.0.1:6379> hget qhh age
"24"
12⑦0.0.1:6379> hget qhh sex
"0"
12⑦0.0.1:6379> hget yhq id
(nil)

hgetall : 获取哈希表所有k-v,不存在返回空列表

12⑦0.0.1:6379> hgetall qhh
1) "name"
2) "yhq"
3) "age"
4) "24"
5) "sex"
6) "0"
12⑦0.0.1:6379> hgetall q
(empty list or set)

hmget : 获取一个或多个给定的值,不存在返回nil

12⑦0.0.1:6379> hmget qhh name age a
1) "yhq"
2) "24"
3) (nil)

hdel : 删除一个或者多个哈希表字段,不存在忽略,返回删除字段的个数

12⑦0.0.1:6379> hgetall qhh
1) "name"
2) "1"
3) "age"
4) "2"
12⑦0.0.1:6379> hdel qhh age a
(integer) 1
12⑦0.0.1:6379> hgetall qhh
1) "name"
2) "1"

hexists : 查询哈希表字段是否存在,存在返回1,不存在返回0

12⑦0.0.1:6379> hgetall must
1) "name"
2) ""
3) "age"
4) "1"
12⑦0.0.1:6379> hexists must name
(integer) 1
12⑦0.0.1:6379> hexists must na
(integer) 0

hkeys : 返回哈希表所有的k,key不存在返回空列表

12⑦0.0.1:6379> hkeys must
1) "name"
2) "age"
12⑦0.0.1:6379> hkeys must1
(empty list or set)

hvals : 返回哈希表所有k值,key不存在返回空列表

12⑦0.0.1:6379> hvals must
1) ""
2) "1"
12⑦0.0.1:6379> hvals must1
(empty list or set)

hlen : 返回哈希表字段数量,key不存在返回0

12⑦0.0.1:6379> hlen must
(integer) 2

hincrby : 对哈希表字段进行数值增删修改,字段串返回错误,如果不存在则执行创建操作

12⑦0.0.1:6379> hincrby yhq name 100
(integer) 100
12⑦0.0.1:6379> hgetall yhq
1) "name"
2) "100"
12⑦0.0.1:6379> hset yhq sex n
(integer) 1
12⑦0.0.1:6379> hincrby yhq sex 100
(error) ERR hash value is not an integer
12⑦0.0.1:6379> hincrby yhq name -100
(integer) 0
12⑦0.0.1:6379> hgetall yhq
1) "name"
2) "0"
3) "sex"
4) "n"

hincrbyfloat :?对哈希表字段进行数值增删浮点值修改,字段串返回错误,如果不存在则执行创建操作

12⑦0.0.1:6379> hincrbyfloat yhq size 1.1
"1.1"
12⑦0.0.1:6379> hincrbyfloat yhq name yhq
(error) ERR value is not a valid float
12⑦0.0.1:6379> hincrbyfloat yhq size -11.11
"-10.01"
12⑦0.0.1:6379> hgetall yhq
1) "size"
2) "-10.01"

以上就是土嘎嘎小编为大家整理的Redis之哈希_hashes)类型命令相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章