Redis(九)-Redis的常用数据类型之Hash表

Redis(九)-Redis的常用数据类型之Hash表,第1张

您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦。
💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通
❤️ 2. Python爬虫专栏,系统性的学习爬虫的知识点。9.9元买不了吃亏,买不了上当,持续更新中 。python爬虫入门进阶
❤️ 3. Ceph实战,从原理到实战应有尽有。 Ceph实战
❤️ 4. Java高并发编程入门,打卡学习Java高并发。 Java高并发编程入门
😁 5. 社区逛一逛,周周有福利,周周有惊喜。码农飞哥社区,飞跃计划
全网同名【码农飞哥】欢迎关注,个人VX: wei158556

文章目录
    • 简介
      • 1. 将对象序列化后存储
      • 2. 存储为hash对象
    • 常用命令
    • 数据结构
    • 参考

简介

Redis hash 是一个键值对集合,
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。它类似于Java里面的Map
比如现在需要存储用户信息,用户ID为查找的key,存储的value 用户对象包括姓名,年龄,账号等信息
这里有两种存储方式:

1. 将对象序列化后存储

第一种方式就是将对象序列化成字符串进行存储

这种方式的优点是存储简单,缺点就是当需要修改对象中的某个属性时需要将Redis中拿到的字符串反序列化成该对象,然后修改此对象的值,最后再将修改后的对象序列化后存到Redis中。

2. 存储为hash对象

另外一种方式就是将该对象以hash对象的形式存储到Redis中。通过hash对象的方式存储对象的话,修改单个字段就方便多了。只需要取出需要修改的那个字段的值然后直接进行修改即可。

它实际的存储结构是:

常用命令
  1. 集合中的 键赋值
hset <key> <field> <value>
  1. 集合 取出value
hget <key1> <field>
  1. 批量设置hash的值
hmset <key1> <field> <value1> <field2> <value2> ....
  1. 列出指定 的hash集合的所有field
hkeys <key>


5. 查看哈希表key中,给定域field是否存在

hexists <key1> <field> 
  1. 列出指定 的hash集合的所有value
hvals <key>


7. 为哈希表key中的域 field 的值加上增量1,-1

hincrby <key> <field> <increment>
  1. 将哈希表key中的域field的值设置为value,当且仅当域field 不存在
hsetnx <key> <field> <value>

数据结构

Hash类型对应的数据结构有两种:ziplist (压缩列表),hashtable (哈希表)。当field-value长度较短且个数较少时,使用ziplist,否则使用hashtable。
详细可以观看此文 Redis(十)-Redis的数据结构之字典

参考

《Redis的设计与实现》
Redis基本类型及其数据结构

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/735626.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-04-27
下一篇2022-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存