redis中hash基本命令
2020-09-24 本文已影响0人
小鱼_a563
Hash(哈希)
Map集合,是以key-map的形式存储数据,本质和string没有太大的区别
一.基本命令
1.存储,查看数据
myredis:0>hset h1 work student #set一个具体的key-value
"1"
myredis:0>hget h1 work #获取一个字段的值
"student"
myredis:0>hmset h1 name xiaoyu age 12 six men #set多个具体的key-value
"OK"
myredis:0>hgetall h1 #获取全部的数据
1) "name"
2) "xiaoyu"
3) "age"
4) "12"
5) "six"
6) "men"
##########################################################################
2.删除
myredis:0>hgetall h1
1) "name"
2) "xiaoyu"
3) "age"
4) "12"
5) "six"
6) "men"
7) "work"
8) "student"
myredis:0>hdel h1 work #删除指定key中的字段,同时删除key中字段的元素
"1"
myredis:0>hgetall h1
1) "name"
2) "xiaoyu"
3) "age"
4) "12"
5) "six"
6) "men"
##########################################################################
3.查看集合长度
myredis:0>hlen h1 #查看集合字段个数
"3"
##########################################################################
4.判断集合中字段是否存在
myredis:0>hexists h1 name
"1"
myredis:0>hexists h1 lastname
"0"
##########################################################################
5.只获得所有的字段(field),只获得所有的值(value)
myredis:0>hkeys h1 #只获得h1这个key中所有的字段field
1) "name"
2) "age"
3) "six"
myredis:0>hvals h1 #只获得h1这个key中所有的value
1) "xiaoyu"
2) "12"
3) "men"
##########################################################################
6.字段的值也可以自增,判断是否存在数据,如果有则不新增,如果没有则新增
myredis:0>hincrby h1 age 1 #指定增量
"13"
myredis:0>hincrby h1 age -1
"12"
myredis:0>hgetall h1
1) "name"
2) "xiaoyu"
3) "age"
4) "12"
5) "six"
6) "men"
myredis:0>hsetnx h1 name xiao #如果key中字段存在数据,则不创建数据
"0"
myredis:0>hsetnx h1 lastname xiao ##如果key中字段不存在数据,则创建数据
"1"
二.总结
- Hash更适合存储对象信息,经常变动的数据。
- 比如用户对象
我们存储用户id为1的数据,按照下面类似存储就可以了
- 比如用户对象
hmset user:1 name xiaoyu age 14 six 男
myredis:0>hgetall user:1
1) "name"
2) "xiaoyu"
3) "age"
4) "14"
5) "six"
6) "男"
- String更加适合存储字符串数据