Redis-Hash(哈希)
前言
提示:本文章是日常学习内容的总结,并非全部原创;仅供大家参考借鉴,并无其他商业用途。Bilibili搜索关注:狂神说
真正在公司中的实践:NoSQL + RDBMS 一起使用才是最强的,阿里巴巴的架构演进!
技术没有高低之分,就看你如何去使用!(提升内功,思维的提高!)
云计算的长征之路:阿里云的这群疯子
Hash(哈希)概括
Map集合,还是一个简单的key-vlaue!
只不过 value这个时候是一个map集合! 本质和String类型没有太大区别,
hash 更适合于对象的存储,String更加适合字符串存储!
hash变更的数据 user name age,尤其是是用户信息之类的,经常变动的信息!
1、Hset和Hget ,Hmset和Hmget ,Hgetall (Key和Value一起打印),Hdel
127.0.0.1:6379> hset myhash field1 kuangshen # set一个具体 key-vlaue
(integer) 1
127.0.0.1:6379> hget myhash field1 # 获取一个字段值
"kuangshen"
127.0.0.1:6379> hmset myhash field1 hello field2 world # set多个 key-vlaue
OK
127.0.0.1:6379> hmget myhash field1 field2 # 获取多个字段值
1) "hello"
2) "world"
127.0.0.1:6379> hgetall myhash # 获取全部的数据,
1) "field1"
2) "hello"
3) "field2"
4) "world"
127.0.0.1:6379> hdel myhash field1 # 删除hash指定key字段!对应的value值也就消失了!
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "field2"
2) "world"
2、Hlen长度
hlen
127.0.0.1:6379> hmset myhash field1 hello field2 world
OK
127.0.0.1:6379> Hgetall myhash
1) "field2"
2) "world"
3) "field1"
4) "hello"
127.0.0.1:6379> hlen myhash # 获取hash表的字段数量!
(integer) 2
3、Hexists 指定字段是否存在
127.0.0.1:6379> Hexists myhash field1 # 判断hash中指定字段是否存在!
(integer) 1
127.0.0.1:6379> Hexists myhash field3
(integer) 0
4、Hkeys获得所有value ,Hvals 获得所有field
127.0.0.1:6379> hkeys myhash # 只获得所有field
1) "field2"
2) "field1"
127.0.0.1:6379> hvals myhash # 只获得所有value
1) "world"
2) "hello"
5、incr,decr
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> HincrBy myhash field3 -1
(integer) 5
127.0.0.1:6379> hsetnx myhash field4 hello # 如果不存在则可以设置
(integer) 1
127.0.0.1:6379> hsetnx myhash field4 world # 如果存在则不能设置
(integer) 0