当Redis缓存的使用量接近或达到预设的上限时,其具体行为完全取决于配置的内存淘汰策略。通过合理设置 maxmemory 与 maxmemory-policy,系统能在内存不足时自动依据规则清理数据,从而保障服务的持续可用。
首先需要明确的是,在Redis中,过期策略与内存淘汰策略是两个不同的概念。过期策略是指Redis如何处理已经过期的键值对;而内存淘汰机制则是指当Redis占用的内存超过了设定的最大值时,采用何种规则来删除部分数据,从而确保服务能够持续高效运行。
一、Redis的内存上限
内存淘汰机制触发的前提,是Redis使用的内存达到了预设的阈值,即配置文件中通过maxmemory参数设定的最大内存值。
内存淘汰的整体流程可以概括为以下步骤:

二、如何查看当前内存上限
通过执行config get maxmemory命令,可以查看当前设置的最大运行内存。
127.0.0.1:6379> config get maxmemory
1) "maxmemory"
2) "0"
如果返回值为0,在64位系统中代表没有内存限制。值得注意的是,32位系统默认的最大内存限制为3GB。
三、内存淘汰策略详解
3.1 查看当前策略
使用config get maxmemory-policy命令可以查询当前生效的内存淘汰策略:
127.0.0.1:6379> config get maxmemory-policy
1) "maxmemory-policy"
2) "noeviction"
