Hash(哈希)

Hash概念

Hash(哈希)
本质都是key - value
但Hash的格式有点特别 key - map (filed-value)
Redis Hash 是一个String类型的filed 和 value 的映射表, hash 特别适合用于存储对象。类似java中的Map <String, object>
image

127.0.0.1:6379> hset hash name v1 # 增加一个具体的filed-vlaue
(integer) 1
127.0.0.1:6379> hget hash name # 获取一个字段值
"v1"
127.0.0.1:6379> hmset hash name v2 name2 v3 # 在hash键中增加多个filed-value
OK
127.0.0.1:6379> hmget hash name name2 # 获取多个字段的值
1) "v2"
2) "v3"
127.0.0.1:6379> hgetall hash # 获取hash所有字段值
1) "name"
2) "v2"
3) "name2"
4) "v3"
127.0.0.1:6379> hdel hash name name2 # 删除hash指定字段值
(integer) 2
127.0.0.1:6379> hgetall hash
(empty list or set)
127.0.0.1:6379> hset hash name v1
(integer) 1
127.0.0.1:6379> hmset hash name1 v1 name2 v2
OK
127.0.0.1:6379> hlen hash # 获取hash的字段个数(说长度有点不合理)
(integer) 3
127.0.0.1:6379> hgetall
(error) ERR wrong number of arguments for 'hgetall' command
127.0.0.1:6379> hgetall hash
1) "name"
2) "v1"
3) "name1"
4) "v1"
5) "name2"
6) "v2"
127.0.0.1:6379> HEXISTS hash name # 判断hash指定字段是否存在
(integer) 1
127.0.0.1:6379> hkeys hash # 获取hash所有字段
1) "name"
2) "name1"
3) "name2"
127.0.0.1:6379> hvals hash # 获取hash所有字段中的值
1) "v1"
2) "v1"
3) "v2"
127.0.0.1:6379> hset hash name3 1
(integer) 1
127.0.0.1:6379> HINCRBY hash name3 1 #指定增量
(integer) 2
127.0.0.1:6379> hget hash name3
"2"
127.0.0.1:6379> hsetnx hash name4 hello # 如果该字段不存在,就添加
(integer) 1
127.0.0.1:6379> hsetnx hash name4 world # 如果存在,就设置失败
(integer) 0

hash变更的数据 user name age 尤其是用户信息之类的,经常变动的信息! hash更适合存储对象

127.0.0.1:6379> hset user:1 name luo
(integer) 1
127.0.0.1:6379> hget user:1 name
"luo"

hash的数据结构

Hash类型对应的数据结构是两种:ziplist(压缩列表),hashtable(哈希表)。当field-value长度较短且个数较少时,使用ziplist,否则使用hashtable

posted @   小罗要有出息  阅读(339)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示