redis 常用数据类型操作四 哈希(Hash)

redis 哈希Hash

简介

redis hash是一个键值对集合

redis hash 是一个string 类型的 fieldvalue 的映射表,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的范围来获取元素列表。

posted @   洒洒水啦  阅读(1782)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 本地部署 DeepSeek:小白也能轻松搞定!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 在缓慢中沉淀,在挑战中重生!2024个人总结!
· 大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!
· 从 Windows Forms 到微服务的经验教训
点击右上角即可分享
微信分享提示