降低Redis内存占用率
降低Redis内存占用率
降低redis 内存占用率有助于减少创建快照和加载快照所需的时间、
提升载入AOF文件和重写AOF文件时的效率、
缩短从服务器同步所需要的的时间,并且让redis可以存储更多的数据而无需添加额外的硬件。
短结构
redis 为列表、集合、散列、有序集合提供了组配置选项即短结构;
配置项 |
---|
list-max-ziplist-entries 128 |
list-max-ziplist-value 64 |
zset-max-ziplist-entries 128 |
zset-max-ziplist-value 64 |
hash-max-ziplist-entries 512 |
hash-max-ziplist-value 64 |
-max-ziplist-entries 选项说明列表、散列、有序集合在被编码情况下允许的最大元素数量
-max-ziplist-value 选项则说明压缩列表每个节点的最大体积的多少个字节。
当以上这些选项被突破时redis 就会将对应的类型压缩列表编码转换为其他结构,从而导致内存占用增加。
即使后面key 的体积减少了且满足了设置值,但是也不会将结构重新压缩转换为压缩列表
调试方式判断一个结构是否为压缩列表
1 | conn.rpush('testKey', 'a', 'b', 'c', 'd') |
分片结构
分片散列
分片集合
打包存储二进制后字节
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Jacker-zzk's Blog!