Redis 哈希结构加拿大28程序搭建内存模型剖析

对于 Redis的常加拿大28程序搭建【征途源码论坛zhengtuwl.com】联系方式:QQ:2747044651用 5 种数据类型(String、Hash、List、Set、sorted set),每种数据类型都提供了 最少两种 内部的编码格式,而且每个数据类型内部编码方式的选择 对用户是完全透明的,Redis会根据数据量自适应地选择较优化的内部编码格式。

如果想查看某个键的内部编码格式,可以使用 OBJECT ENCODING keyname 指令来进行,比如:

127.0.0.1:6379>
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379>
127.0.0.1:6379> object encoding foo // 查看某个Redis键值的编码
"embstr"
127.0.0.1:6379>
127.0.0.1:6379>
对于使用最为频繁的 Hash类型,其内部编码方式可能有两种:

OBJ_ENCODING_ZIPLIST(压缩列表)
OBJ_ENCODING_HT(哈希表)
Redis 会根据数据量的情况来自适应地选择这两种编码方式中 较优 的一种,而这一切对用户完全透明。

在 数据条目较少,数据值较小 的时候 Redis会采用 压缩列表(OBJ_ENCODING_ZIPLIST)编码方式进行存储。这里成员"较少",成员值"较小"的标准可以通过如下配置项进行配置:

hash-max-ziplist-entries 512
hash-max-ziplist-value 64
Redis 默认给出了默认值,当然用户可根据实际情况自行

猜你喜欢

转载自blog.51cto.com/13943341/2165423