Redis基本数据类型Hash

suaxi
2021-01-02 / 0 评论 / 99 阅读 / 正在检测是否收录...

Hash

key-value键值对

key-map===>此时将value换成了一个map集合

hash的本质与String没有太大的区别

127.0.0.1:6379> hset hash field nihao #set一个具体的key-value
(integer) 1
127.0.0.1:6379> hget hash field
"nihao"
127.0.0.1:6379> hmset myhash field01 nihao filed02 xiexie #set多个key-value
OK
127.0.0.1:6379> hmget myhash field01 filed02 #获取多个字段值
1) "nihao"
2) "xiexie"
127.0.0.1:6379> hgetall myhash #获取全部的数据
1) "field01"
2) "nihao"
3) "filed02"
4) "xiexie"
127.0.0.1:6379> 
# hdel 删除hash指定key字段,key对应的value值也同时被删除
127.0.0.1:6379> hdel myhash filed02
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "field01"
2) "nihao"
127.0.0.1:6379> 
# hlen 获取hash表的字段数量
127.0.0.1:6379> hgetall myhash
1) "field01"
2) "nihao"
3) "field02"
4) "xiexie"
127.0.0.1:6379> hlen myhash
(integer) 2
# hexists 判断hash中指定字段是否存在
127.0.0.1:6379> hgetall myhash
1) "field01"
2) "nihao"
3) "field02"
4) "xiexie"
127.0.0.1:6379> hexists myhash field01
(integer) 1
127.0.0.1:6379> 
127.0.0.1:6379> hkeys myhash #只获取所有的field字段
1) "field01"
2) "field02"
127.0.0.1:6379> hvals myhash #只获取所有的value值
1) "nihao"
2) "xiexie"
127.0.0.1:6379> 
127.0.0.1:6379> hset myhash field03 2
(integer) 1
127.0.0.1:6379> hincrby myhash field03 1 #设置自增
(integer) 3
127.0.0.1:6379> hsetnx myhash field04 ceshi #如果不存在则创建
(integer) 1
127.0.0.1:6379> hsetnx myhash field04 ceshi01 #如果存在则不能创建 
(integer) 0

hash更适合对象的存储(如:用户信息变更,经常改动的数据等),String更适合字符串的存储。

0

评论 (0)

取消