Redis中哈希hash数据类型
  TEZNKK3IfmPf 2023年11月13日 26 0
  • hash⽤于存储对象,对象的结构为属性、值
  • 的类型为string

【应用:如购物车内某个宝贝的所有属性】  【help hset】

1. 增加、修改

1.1 设置单个属性

hset key field value

例1:设置键 user的属性name为dgw

hset user name dgw

Redis中哈希hash数据类型(增加修改(设置单一属性、设置多个属性)、获取(获取键所有属性、获取单一属性值、获取多个属性值)、删除、使用hash可能出现的问题)

1.2 设置多个属性

hmset key field1 value1 field2 value2 ...

例2:设置键u2的属性name为zhangsan、属性age为35

hmset u2 name zhangsan age 35

Redis中哈希hash数据类型(增加修改(设置单一属性、设置多个属性)、获取(获取键所有属性、获取单一属性值、获取多个属性值)、删除、使用hash可能出现的问题)

【再用  hset u2 name lisi      -->  即为更新】

2. 获取

2.1 获取指定键所有的属性

hkeys key

获取键userinfo的所有属性:

Redis中哈希hash数据类型(增加修改(设置单一属性、设置多个属性)、获取(获取键所有属性、获取单一属性值、获取多个属性值)、删除、使用hash可能出现的问题)

2.2 获取⼀个属性的值

hget key field

例4:获取键u2属性name的值

hget u2 name

Redis中哈希hash数据类型(增加修改(设置单一属性、设置多个属性)、获取(获取键所有属性、获取单一属性值、获取多个属性值)、删除、使用hash可能出现的问题)

2.3 获取多个属性的值

hmget key field1 field2 ...

例5:获取键u2属性nameage的值

hmget u2 name age

Redis中哈希hash数据类型(增加修改(设置单一属性、设置多个属性)、获取(获取键所有属性、获取单一属性值、获取多个属性值)、删除、使用hash可能出现的问题)

2.4 获取所有属性的值

hvals userinfo

Redis中哈希hash数据类型(增加修改(设置单一属性、设置多个属性)、获取(获取键所有属性、获取单一属性值、获取多个属性值)、删除、使用hash可能出现的问题)

2.5 获取所有的键和值:

hgetall userinfo

Redis中哈希hash数据类型(增加修改(设置单一属性、设置多个属性)、获取(获取键所有属性、获取单一属性值、获取多个属性值)、删除、使用hash可能出现的问题)

2.6 获取键值对的个数

hlen userinfo

Redis中哈希hash数据类型(增加修改(设置单一属性、设置多个属性)、获取(获取键所有属性、获取单一属性值、获取多个属性值)、删除、使用hash可能出现的问题)

2.7 判断key中是否包含field(包含:1,不包含:0)

hexists userinfo name

Redis中哈希hash数据类型(增加修改(设置单一属性、设置多个属性)、获取(获取键所有属性、获取单一属性值、获取多个属性值)、删除、使用hash可能出现的问题)

2.8 hincrby用法

给userinfo中的age加3(必须是数字):

hincrby userinfo age 3

Redis中哈希hash数据类型(增加修改(设置单一属性、设置多个属性)、获取(获取键所有属性、获取单一属性值、获取多个属性值)、删除、使用hash可能出现的问题)

2.9 hincrbyfloat用法

给userinfo中的age加2.5(可以加浮点数):

hincrbyfloat userinfo age 2.5

Redis中哈希hash数据类型(增加修改(设置单一属性、设置多个属性)、获取(获取键所有属性、获取单一属性值、获取多个属性值)、删除、使用hash可能出现的问题)

2.10 hsetnx用法

如果 field 不存在才设置,否则失败。

hsetnx user id 2

Redis中哈希hash数据类型(增加修改(设置单一属性、设置多个属性)、获取(获取键所有属性、获取单一属性值、获取多个属性值)、删除、使用hash可能出现的问题)

3. 删除

  • 删除整个hash键及值,使⽤del命令
  • 删除属性,属性对应的值会被⼀起删除

    hdel key field1 field2 ...

删除键userinfo中的属性sex:

hmset userinfo name dgw age 26 sex '男'
hdel userinfo sex
hkeys userinfo

Redis中哈希hash数据类型(增加修改(设置单一属性、设置多个属性)、获取(获取键所有属性、获取单一属性值、获取多个属性值)、删除、使用hash可能出现的问题)

 

4. 可能出现的错误

Redis中哈希hash数据类型(增加修改(设置单一属性、设置多个属性)、获取(获取键所有属性、获取单一属性值、获取多个属性值)、删除、使用hash可能出现的问题)

MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.

Redis被配置为保存数据库快照,但它目前不能持久化到硬盘。用来修改集合数据的命令不能用

  • 原因:
    • 强制关闭Redis快照导致不能持久化。
  • 解决方案:
    • 运行config set stop-writes-on-bgsave-error no 命令后,关闭配置项stop-writes-on-bgsave-error解决该问题。
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   28天前   25   0   0 dataredis
  TEZNKK3IfmPf   28天前   21   0   0 awkredis
  TEZNKK3IfmPf   2024年04月19日   35   0   0 javarediskey
TEZNKK3IfmPf