Hash(哈希)
- Map集合,key-map集合
- hash变更的数据user,name,age,尤其是用户信息之类的,经常变动的信息。
- hash更适合对象的存储,String更适合字符串存储
set值,获取值,移除值:
127.0.0.1:6379> hset user name lyr #set一个具体的key-value
(integer) 1
127.0.0.1:6379> hget user name #获取一个字段值
"lyr"
127.0.0.1:6379> hmset user pwd 123456 age 18 #set多个具体的key-value
OK
127.0.0.1:6379> hmget user pwd age #获取多个字段值
1) "123456"
2) "18"
127.0.0.1:6379> hgetall user #获取全部数据
1) "name"
2) "lyr"
3) "pwd"
4) "123456"
5) "age"
6) "18"
127.0.0.1:6379> hdel user pwd #删除指定key
(integer) 1
127.0.0.1:6379> hgetall user
1) "name"
2) "lyr"
3) "age"
4) "18"
127.0.0.1:6379> hlen user #获取hash表的长度
(integer) 2
127.0.0.1:6379> hexists user name #判断hash中指定字段是否存在
(integer) 1
127.0.0.1:6379> hexists user pwd
(integer) 0
获得所有key,获得所有value:
127.0.0.1:6379> hkeys user #只获得所有的key
1) "name"
2) "age"
127.0.0.1:6379> hvals user #只获得所有的value
1) "lyr"
2) "18"
自增:
127.0.0.1:6379> hincrby user age 1 #让指定key增1
(integer) 19
127.0.0.1:6379> hincrby user age -1
(integer) 18
127.0.0.1:6379> hsetnx user sex 1 #如果不存在则可以设置
(integer) 1
127.0.0.1:6379> hsetnx user sex 0 #如果存在则不能设置
(integer) 0