redis 常用数据类型操作四 哈希(Hash)
redis 哈希Hash
简介
redis hash是一个键值对集合
redis hash 是一个string 类型的 field 和 value 的映射表,hash特别适合用于存储对象,类似于C#里面的Dictionary<key,value>
用户ID查找的key,存储的value用户包含姓名,年龄,生日等信息,如果用普通的key/value结构来存储,
主要有以下两种存储方式
第一种:序列化对象为json字符串 user={id:1,name:"july",age:20}
缺点:如果需要修改对象的某些属性值,先要将字符串反序列化为对象,然后再对其进行修改,序列化重新存储
第二种:分开存储,userid :1 ,username:"july"
缺点:数据太分散了,数据量大的时候,数据特别混乱
第三种:使用hash field value 实现映射关系进行存储
优点:存储方便,存/取/改值方便
常用命令
hset <key> <field> <value> 给key集合中的<field>键赋值<value>
hget <key> <field> 从key集合<field>取出<value>
hmset <key1> <field1> <value1> <field2> <value2> 批量设置hash值
hexists <key> <field> 查看哈希表key中,给定域field是否存在
hkeys <key> 列出该hash集合中所有field
hvals <key> 列出该hash集合中所有value
hincrby <key><field> <increment> 为哈希表key中的域field增加上增量1 -1
hsetnx <key> <field> <value> 将哈希表key 中的域field的值设置为value,当且仅当field不存在
数据结构
Hash 数据对应的数据结构是两种:ziplist(压缩列表),hashtable(哈希表)。当field-value长度较短且个数较少时,使用ziplist,否则使用hashtable。
redis 有序集合(zset)
简介
redis hash是一个键值对集合
redis hash 是一个string 类型的 field 和 value 的映射表,hash特别适合用于存储对象,类似于C#里面的Dicti保障value的唯一性,可以通过value找到对应score值
(2)跳跃表,跳跃表的目的是在于给元素value排序,根据socre的范围来获取元素列表。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 本地部署 DeepSeek:小白也能轻松搞定!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 在缓慢中沉淀,在挑战中重生!2024个人总结!
· 大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!
· 从 Windows Forms 到微服务的经验教训