Redis

定期删除+惰性删除

所谓定期删除,指的是 Redis 默认是每隔 100ms 就随机抽取一些设置了过期时间的 key,检查其是否过期,如果过期就删除。

内存淘汰机制

Redis 内存淘汰机制有以下几个:

  • noeviction: 当内存不足以写入新数据时,新写入操作会报错,一般不会在生产使用。
  • allkeys-lru:当内存不足以写入新数据时,在键空间中,移除最近最少使用的 key(最常用)。
  • allkeys-random:当内存不足以写入新数据时,在键空间中,随机移除某个 key。
  • volatile-lru:当内存不足以写入新数据时,在设置了过期时间的键空间中,移除最近最少使用的 key
  • volatile-random:当内存不足以写入新数据时,在设置了过期时间的键空间中,随机移除某个 key。
  • volatile-ttl:当内存不足以写入新数据时,在设置了过期时间的键空间中,有更早过期时间的 key 优先移除。

reference