Redis 06 Hash
哈希就是 key - map 的数据结构
应用场景:对象存储
赋值
单个哈希赋值
hset
127.0.0.1:6379> hset hash f1 sail
(integer) 1
多个哈希赋值
hmset
127.0.0.1:6379> hmset hash f2 sail2 f3 sail3
OK
不存在才赋值
hsetnx
127.0.0.1:6379> hkeys hash
1) "f1"
2) "f2"
3) "f3"
127.0.0.1:6379> hsetnx hash f4 1 # f4 不存在,赋值成功
(integer) 1
127.0.0.1:6379> hget hash f4
"1"
127.0.0.1:6379> hsetnx hash f4 2 # f4 存在,赋值失败
(integer) 0
127.0.0.1:6379> hget hash f4
"1"
自增
hincrby
127.0.0.1:6379> hset hash f3 1
(integer) 1
127.0.0.1:6379> hincrby hash f3 1 # 自增 1
(integer) 2
127.0.0.1:6379> hincrby hash f3 -1 # 自减 1(哈希没有自减命令,用自增负数实现自减)
(integer) 1
查询
查询单个哈希
hget
127.0.0.1:6379> hget hash f1
"sail"
查询多个哈希
hmget
127.0.0.1:6379> hmget hash f2 f3
1) "sail2"
2) "sail3"
查询哈希所有值
hgetall
127.0.0.1:6379> hgetall hash
1) "f1"
2) "sail"
3) "f2"
4) "sail2"
5) "f3"
6) "sail3"
查询哈希所有 key
hkeys
127.0.0.1:6379> hkeys hash
1) "f1"
2) "f2"
查询哈希所有 value
hvals
127.0.0.1:6379> hvals hash
1) "sail"
2) "sail2"
查询哈希长度
hlen
127.0.0.1:6379> hgetall hash
1) "f1"
2) "sail"
3) "f2"
4) "sail2"
127.0.0.1:6379> hlen hash
(integer) 2
查询哈希字段是否存在
hexists
127.0.0.1:6379> hgetall hash
1) "f1"
2) "sail"
3) "f2"
4) "sail2"
127.0.0.1:6379> hexists hash f1 # 存在返回 1
(integer) 1
127.0.0.1:6379> hexists hash f3 # 不存在返回 0
(integer) 0
删除
删除哈希指定字段
hdel
127.0.0.1:6379> hdel hash f3
(integer) 1
127.0.0.1:6379> hgetall hash
1) "f1"
2) "sail"
3) "f2"
4) "sail2"