一般的剔除策略有 FIFO 淘汰最早数据、LRU 剔除最近最少使用、和 LFU 剔除使用频率最低的数据几种策略。
Redis淘汰策略有以下6种:
- noeviction:直接返回错误,当内存限制达到并且客户端尝试执行会让更多内存被使用的命令(大部分的写入指令,但DEL和几个例外)
- allkeys-lru: 尝试回收最近最少使用的键(LRU),使得新添加的数据有空间存放。
- volatile-lru: 尝试回收最近最少使用的键(LRU),但仅限于回收即将过期的key,使得新添加的数据有空间存放。
- allkeys-random: 回收随机的键使得新添加的数据有空间存放。
- volatile-random: 回收随机的键使得新添加的数据有空间存放,但仅限于回收即将过期的key。
- volatile-ttl: 回收即将过期的key,并且优先回收存活时间(TTL)较短的键,使得新添加的数据有空间存放。