5.Redis内存淘汰策略

Redis内存淘汰策略

Redis在使用内存达到某个阈值(通过maxmemory配置)的时候,就会触发内存淘汰机制,选取一些key来删除。

内存淘汰有许多策略,下面分别介绍这几种不同的策略。

maxmemory  配置内存阈值
maxmemory-policy noeviction
  1. noeviction:当内存不足以容纳新写入数据时,新写入操作会报错。默认策略
  2. allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key。
  3. allkeys-random:当内存不足以容纳新写入数据时,在键空间中,随机移除某个key。
  4. volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,移除最近最少使用的key。
  5. volatile-random:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,随机移除某个key。
  6. volatile-ttl:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,有更早过期时间的key优先移除。

如何选取合适的策略?

比较推荐的是两种lru策略。根据自己的业务需求。如果你使用Redis只是作为缓存,不作为DB持久化,那推荐选择allkeys-lru;如果你使用Redis同时用于缓存和数据持久化,那推荐选择volatile-lru。

你可能感兴趣的:(5.Redis内存淘汰策略)