Redis Hash哈希类型

Hash相当于map集合。本质和String类型没有太大区别,还是一个简单的key-value!

所有的Hash命令是以“h”开头的。

1.利用 hset命令 设置键值

127.0.0.1:6379> hset myhash field1 ckfuture
(integer) 1

 

 2.利用hget 命令获取键值

127.0.0.1:6379> hget myhash field1
"ckfuture"

 

 3.利用 hmset 命令同时设置多个键值

127.0.0.1:6379> hmset myhash field1 hello field2 word
OK

 

 4.利用hmget命令同时获取多个键值

127.0.0.1:6379> hmget myhash field1 field2
1) "hello"
2) "word"

 

 5.利用hmgetall命令获取全部键值对

127.0.0.1:6379> hgetall myhash
1) "field1"
2) "hello"
3) "field2"
4) "word"

 

 6.利用hdel命令删除指定的字段

127.0.0.1:6379> hdel myhash field1
(integer) 1

 

7.利用hlen命令获取哈市表字段数量

127.0.0.1:6379> hlen myhash
(integer) 1

 

 8.利用hexists判断hash中指定字段是否存在

127.0.0.1:6379> hexists myhash field1
(integer) 0
127.0.0.1:6379> hexists myhash field2
(integer) 1
127.0.0.1:6379>   

 

 9.利用hkeys 命令获得所有field(字段)

127.0.0.1:6379> hkeys myhash
1) "field2"
127.0.0.1:6379>     

 

 10.利用hvals 命令获得所有value

127.0.0.1:6379> hvals myhash
1) "word"

 

 11.利用hincrby命令设置字段自增1

127.0.0.1:6379> hset myhash field3 5
(integer) 1
127.0.0.1:6379> hincrby myhash field3 1
(integer) 6
127.0.0.1:6379>     

12.利用hincrby key field -1 命令设置字段自减

127.0.0.1:6379> hincrby myhash field3 -1
(integer) 5
127.0.0.1:6379>    

13.利用hsetnx 命令完成如果不存在则可以设置,如果存在则不能设置。

127.0.0.1:6379> hsetnx myhash field4 hello
(integer) 1
127.0.0.1:6379> hsetnx myhash field4 word
(integer) 0
127.0.0.1:6379>   

 

 使用场景:

  • 分布式锁:存在则加1,不存在则减1。
  • 变更数据,尤其是用户信息之类的保存,经常变动信息!

hash更适合于对象的存储。String更适合字符串存储。

 

posted @ 2021-02-10 14:04  创客未来  阅读(176)  评论(0)    收藏  举报