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 @   创客未来  阅读(164)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示