redis数据类型之Hash

本文详细介绍了 Redis 中的 Hash 结构和 ZSet(有序集合)结构的相似点与区别。Hash 和 ZSet 均为键值存储,键唯一,但 ZSet 的值包含分数用于排序。Hash 默认使用 ZipList 编码,当数据量增大时转为 HT(字典)编码。ZipList 的转换条件包括元素数量超过 512 个或单个 entry 大于 64 字节。通过配置参数可以查看或调整这些值。
摘要由CSDN通过智能技术生成

Hash 结构与 ZSet 结构非常类似

        1.都是键值存储

        2.都需要根据键获取值

        3.键必须唯一

区别如下:

        1.ZSet 的键是 member,值是 score ; hash 的键和值都是任意值

        2.ZSet 要根据 score 进行排序,而 hash 则不需要

因此 Hash 底层采用的编码与 ZSet 也基本一致,只需要把排序有关的 SkipList 去掉即可

        1.Hash 结构默认采用 ZipList 编码,用以节省内存。ZipList 中相邻的两个 entry 分别保存 field 和value 

        2.当数据量较大时,Hash 结构会转为 HT 编码,也就是 Dict ,触发条件有两个:

                1.ZipList 中的元素数量超过了 hash_max_ziplist_entries(默认 512 )

                2.ZipList 中的任意 entry 大小超过了 hash_max_ziplist_value (默认 64 字节)

结构如下:

可通过 config get/set 查看或设置参数的值

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值