hash 数据类型
hash 用于存储对象,对象的格式为键值对(json格式)
命令
- 设置一个键一个属性
hset key(键名) field(属性) value(属性值)
例如存储:{ name:张三}
name 为属性(field),张三为属性值(value)
设置命令:
127.0.0.1:6379> hset ht1 name "张三"
- 设置一个键多个属性
HMSET key field value [field value ...]
例如存储:{name:王五,gender:男}
name /gender为属性(field),张三/男为属性值(value)
设置命令:
127.0.0.1:6379> hmset ht2 name "王五" gender "男"
获取
- 获取一个属性的值
hget key field
例如:获取ht1键的属性值
获取命令
127.0.0.1:6379> hget ht1 name
"\xe5\xbc\xa0\xe4\xb8\x89"
- 获取多个属性的值
hmget key field [field ...]
例如:获取ht2键的2个属性
获取命令
127.0.0.1:6379> hmget ht2 name gender
1) "\xe7\x8e\x8b\xe4\xba\x94"
2) "\xe7\x94\xb7"
-
获取所有属性和值
hgetall key
例如:获取ht2键的所有属性和值
获取命令
127.0.0.1:6379> hgetall ht2
1) "name"
2) "\xe7\x8e\x8b\xe4\xba\x94"
3) "gender"
4) "\xe7\x94\xb7"
- 获取所有属性
hkeys key
例如:获取ht2键的所有属性
获取命令
127.0.0.1:6379> hkeys ht2
1) "name"
2) "gender"
- 查询包含属性的个数
hlen key
例如:查询ht2键的所有属性个数
查询命令
127.0.0.1:6379> hlen ht2
(integer) 2
- 获取一个键的所有值
hvals key
例如:获取ht2键的所有属性的值
获取命令
127.0.0.1:6379> hvals ht2
1) "\xe7\x8e\x8b\xe4\xba\x94"
2) "\xe7\x94\xb7"
其他
- 判断键的属性是否存在,(integer) 0不存在,(integer) 1存在
hexists key field
例如:判断ht2的name属性是否存在
执行命令
127.0.0.1:6379> hexists ht2 name
(integer) 1
- 删除一个属性及值
hdel key field [field ...]
例如:删除ht2键的name属性
127.0.0.1:6379> hdel ht2 name
(integer) 1
查看ht2键的name属性是否存在
127.0.0.1:6379> hexists ht2 name
(integer) 0
或
查询ht2键所有属性及值
127.0.0.1:6379> hgetall ht2
1) "gender"
2) "\xe7\x94\xb7"
- 查询属性值的长度
hstrlen key field
例如:查询ht2键gender属性值的长度
查询命令
127.0.0.1:6379> hstrlen ht2 gender
(integer) 3