Hash结构与Redis中的Zset非常类似:
都是键值存储
都需求根据键获取值
键必须唯一
区别如下:
因此,Hash底层采用的编码与Zset也基本一致,只需要把排序有关的SkipList去掉即可:


因此,Hash底层采用的编码与Zset也基本一致,只需要把排序有关的SkipList去掉即可:
Hash结构默认采用ZipList编码,用以节省内存。ZipList中相邻的两个entry 分别保存field和value
当数据量较大时,Hash结构会转为HT编码,也就是Dict,触发条件有两个:
下面是Hash转为HT编码的一个转换过程


hash的执行redis命令的方法

查找创建方法

创建Hash的方法

判断是否需把ZipList转为Dict(在这里会做entry大小判断)

对数据内容的操作方法(在这里会做元素数量判断)

设置hash-max-ziplist-entries和hash-max-ziplist-value限制值的命令

评论