Redis进阶不得不了解的内存优化细节

声明:本文内容来自《Redis开发与运维》一书第八章。
Redis所有的数据都在内存中,而内存又是非常宝贵的资源。对于如何优化内存使用一直是Redis用户非常关注的问题。本文让我们深入到Redis细节中,学习内存优化的技巧。分为如下几个部分:

一. redisObject对象
二. 缩减键值对象
三. 共享对象池
四. 字符串优化
五. 编码优化
六. 控制key的数量

一. redisObject对象
Redis存储的所有值对象在内部定义为redisObject结构体,内部结构如下图所示。

Redis进阶不得不了解的内存优化细节

Redis存储的数据都使用redisObject来封装,包括string,hash,list,set,zset在内的所有数据类型。理解redisObject对内存优化非常有帮助,下面针对每个字段做详细说明:

1.type字段:
表示当前对象使用的数据类型,Redis主要支持5种数据类型:string,hash,list,set,zset。可以使用type {key}命令查看对象所属类型,type命令返回的是值对象类型,键都是string类型。https://yq.aliyun.com/articles/610590?utm_content=m_1000006734