一、概述

Redis  本生就是一个字典类型的键值关系数据库,结构为:

而其中还有一种散列类型的数据结构散列,它也是一种字典结构,存储了字段关系的映射。

散列就像是一个小的redis一样,只不过这个小型redis不支持其他类型,只能是字符串。

二、命令

2.1 设置和获取字段值

  • HSET key field value:给一个字段赋值,当key不存在时自动创建。
  • HGET key field1:获取一个字段的值。
  • HMSET key field value [field value ...]:给多个字段赋值。
  • HMGET key field [field ...]:获取多个字段的值。
127.0.0.1:6379> hset stus maqian 21
(integer) 1
127.0.0.1:6379> hget stus maqian
"21"
127.0.0.1:6379> hget a a 
(nil)  # 获取不存在的值返回nil
127.0.0.1:6379> hmset stus xiaoming 20 xiaohua 18  # 多个字段赋值
OK
127.0.0.1:6379> hmget stus xiaoming xiaohua maqian  # 获取多个字段值
1) "20"
2) "18"
3) "21"

2.2 获取值

  • HGETALL key : 获取key中所有字段和值。
  • HKEYS key:获取所有的字段名。
  • HVALS key:获取所有的值。
  • HLEN key:获得字段数量。
127.0.0.1:6379> hgetall stus  # 获取所有的字段和值
1) "maqian"
2) "21"
3) "xiaoming"
4) "20"
5) "xiaohua"
6) "18"
127.0.0.1:6379> hkeys stus
1) "maqian"
2) "xiaoming"
3) "xiaohua"
127.0.0.1:6379> hvals stus
1) "21"
2) "20"
3) "18"
127.0.0.1:6379> hlen stus
(integer) 3

2.3 判断字段存在

  • HEXISTS key field:判断字段是否存在。
  • HSETNX key field value:当字段不存在时赋值。
127.0.0.1:6379> hexists stus aaa  # 判断字段是否存在
(integer) 0  # 不存在返回0
127.0.0.1:6379> hexists stus maqian  
(integer) 1  # 存在返回1
127.0.0.1:6379> hsetnx stus maqian 22  # 如果字段不存在则设置值
(integer) 0  # 字段maqian存在,赋值不成功
127.0.0.1:6379> hget stus maqian
"21"  
127.0.0.1:6379> hsetnx stus xiaobai 20  
(integer) 1  # 字段xiaobai不存在,设置成功
127.0.0.1:6379> hget stus xiaobai
"20"

2.4 数据增加操作

  • HINCRBY key field incrment:字段值+incrment,成功返回增加后的字段。
127.0.0.1:6379> hincrby stus xiaobai 20  # 增加操作
(integer) 40
127.0.0.1:6379> hget stus xiaobai
"40"

2.5 删除字段

  • HDEL key field [field ...]:删除字段,可携带多个字段,返回成功删除的元素个数。
127.0.0.1:6379> hdel stus xiaobai  # 删除字段
(integer) 1
最后修改:2017 年 11 月 25 日
如果觉得我的文章对你有用,请随意赞赏