Redis-哈希(Hash)的相关操作

发布时间 2023-03-27 10:18:09作者: dreamw

今天介绍一种新的数据类型-哈希,也有的地方叫散列。这种数据格式在工作中还挺常见的,哈希有点类似于编程里面的对象的概念,可以在一个对象里面去定义多组键值对,这多个键值对相当于打包绑定在了一起。

在常见的GUI客户端下面查看哈希的数据显示格式:

 

 

哈希常见的操作命令:{key和value只能是字符串类型,不支持再嵌套其他格式数据}

  • HSET 为字段设置值

格式:hset key field value [field value ...] 向名称为 key 的 hash 中添加元素

hset user:libo name libo age 29 phone 13522223033  email 11111@qq.com 
hset user:001 name lico age 23

1、key采用统一的前缀,然后用:区分时,显示的效果会按照前缀进行分组展示

2、使用hset对哈希中单个已存在字段进行覆盖更新时,返回0。

 

 

  • HSETNX:只在字段不存在的情况下为它设置值

格式:HSETNX hash field value

  • HGET:获取字段的值

格式:hget hash field

 

 

  • HINCRBY:对字段存储的整数值执行加法或者减法的操作

格式:hincrby key field increment

 

 

只能针对整数值进行操作,否则会报错:

 

 

  • HINCRBYFLOAT:对字段存储的数字值(整数/小数都可以)进行浮点数的加减法操作

格式:hincrbyfloat key field increment

 

 

  • HSTRLEN:获取字段值的字节长度

格式:hstrlen key field

  • HEXISTS:检查字段是否存在

格式:hexists key field

hexists user name
  • HDEL:删除字段

格式:hdel key field (可以传多个字段,用空格隔开)

hdel user name
hdel user name1 name2
  • HLEN:获取哈希包含的字段数量

格式:hlen key

hlen user
  • HMSET:一次性为一个/多个字段设置值

格式:hmset key field value [field value ...]

hmset user name libo age 29 phone 17665****50 
  • HMGET:一次获取一个/多个值

格式:hmget key field [field...]

HKEYS:获取所有字段

格式:hkeys key

hkey user
  • HVALS:获取所有值

格式:hvals key

  • HGETALL:获取所有字段和值

格式:hgetall key

hgetall user

 

 

HASH的一些使用场景:

1、购物车的设计

以用户id为key,商品id为field,商品数量为value,恰好构成了购物车的3个要素

哈希这个类型在工作中存储数据经常用到,一些常用的命令要了解一下,避免在工作中用错了。

 

 

转 https://zhuanlan.zhihu.com/p/364341839