Redis Note8:Redis-Key—Hash

Redis Note8:Redis-Key—Hash

1. Hash

Map集合,key-map时候这个值是一个map几何。本质和string类型没有太大区别。

1.1 设置和获取值:hset 、hget

127.0.0.1:6379> hset myhash field1 henggao (integer) 1 127.0.0.1:6379> hget myhash field1 "henggao"

1.2 设置和获取多个字段:hmset 、hmget

127.0.0.1:6379> hmset myhash field1 hello field2 world OK 127.0.0.1:6379> hmget myhash field1 field2 1) "hello" 2) "world"

1.3 获取全部的数据:hgetall

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

1.4 删除指定的字段:hdel

# 删除指定的字段,对应的value值也就删除了 127.0.0.1:6379> hdel myhash field1 (integer) 1 127.0.0.1:6379> hgetall myhash 1) "field2" 2) "world"

1.5 获取hash表的数量:hlen

127.0.0.1:6379> hlen myhash (integer) 2

1.6 判断字段是否存在:HEXISTS

127.0.0.1:6379> HEXISTS myhash field1 (integer) 1

1.7 只获取field、value:HKEYS 、HVALS

127.0.0.1:6379> HKEYS myhash 1) "field2" 2) "field1" 127.0.0.1:6379> HVALS myhash 1) "world" 2) "hello"

1.8 指定增减量:HINCRBY

127.0.0.1:6379> hset myhash field3 3 (integer) 1 127.0.0.1:6379> HINCRBY myhash field3 2 (integer) 5 127.0.0.1:6379> HINCRBY myhash field3 -1 (integer) 4

1.9 不存在设置:hsetnx

# 如果不存在可以设置 127.0.0.1:6379> hsetnx myhash field4 hello (integer) 1 # 如果存在不可以设置 127.0.0.1:6379> hsetnx myhash field4 world (integer) 0
 

总结

Hash适合于对象存储,String适合字符串存储。