管理Redis内存占用
淘汰策略
如果设置了合适的淘汰策略,Redis 会根据以下几种策略选择性地移除某些键,腾出内存空间(淘汰策略需要和内存限制配合使用)
常用淘汰策略说明
策略 | 说明 |
---|---|
volatile-lru | 从设置了过期时间的键中,移除最近最少使用(LRU)的键。 |
allkeys-lru | 从所有键中,移除最近最少使用(LRU)的键。 |
volatile-random | 从设置了过期时间的键中,随机移除键。 |
allkeys-random | 从所有键中,随机移除键。 |
volatile-ttl | 从设置了过期时间的键中,移除即将过期的键(优先移除 TTL 短的键)。 |
noeviction | 当内存超过限制时,直接返回错误,不再执行新增操作(这是默认策略)。 |
设置方法: 在 redis.conf 文件中添加或修改:
1 | maxmemory-policy allkeys-lru |
或通过命令行动态设置:
1 | redis-cli config set maxmemory-policy allkeys-lru |
内存限制
设置 maxmemory
1 | maxmemory 4gb |
通过命令行动态设置:
1 | redis-cli config set maxmemory 4294967296 |
持久化设置
如果缓存数据可丢失,可以禁用持久化(RDB 和 AOF)以减少磁盘 IO 开销:
1 | save "" |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 杂烩饭!
评论