一 配置文件修改
maxmemory 524288000
maxmemory-policy volatile-lru
此配置我在测试环境进行测试,所以内存设置为500M 为 上限。注意集群环境下每个节点的配置文件都需要进行修改。
参数说明:
maxmemory 为redis 的最大内存限制,不带单位默认为bytes。
maxmemory-policy 共有八种淘汰策略
淘汰策略名称 | 策略含义 |
---|---|
noeviction | 默认策略,不淘汰数据;大部分写命令都将返回错误(DEL等少数除外) |
allkeys-lru | 从所有数据中根据 LRU 算法挑选数据淘汰 |
volatile-lru | 从设置了过期时间的数据中根据 LRU 算法挑选数据淘汰 |
allkeys-random | 从所有数据中随机挑选数据淘汰 |
volatile-random | 从设置了过期时间的数据中随机挑选数据淘汰 |
volatile-ttl | 从设置了过期时间的数据中,挑选越早过期的数据进行删除 |
allkeys-lfu | 从所有数据中根据 LFU 算法挑选数据淘汰(4.0及以上版本可用) |
volatile-lfu | 从设置了过期时间的数据中根据 LFU 算法挑选数据淘汰(4.0及以上版本可用) |
此处结合我们业务系统中存储的数据选择 LRU ,即如果数据最近被访问过,那么将来被访问的几率也更高。
二 配置文件动态更改
一中配置修改完后,必须进行服务重启,因此redis 还开启了动态config 的机制,保证配置热更新,重启后会读取配置文件中的最新配置
./redis-cli -p 6380 -c
config set maxmemory 524288000
config set maxmemory-policy volatile-lru
注意: 集群模式下所有节点也都需要进行动态修改。