Redis淘汰策略

Redis淘汰策略根据conf配置里的maxmemory_policy决定,我所在的平台maxmemory为10G

  • noeviction(不删除策略,达到最大内存限制时,如果再存,直接返回错误)
  • allkeys-lru 所有key, 优先删除最少使用 (less recently used的key)
  • volatile-lru 只限于设置了expire部分
  • allkeys-random 所有key, 随机删除一部分
  • volatile-random 只限于设置了expire部分,随机删除一部分
  • volatile-ttl 只限于设置了expire部分,优先删除剩余时间短的

淘汰策略选择:

  • 如果数据分冷热, 如果没啥具体的业务特征, 推荐使用allkeys-lru
  • key的访问频率差不多,用allkeys-random,读写所有元素的概率差不多
  • 如果想让Redis根据TTL来筛选删除key, 用volatile-ttl
  • volatile-radom和volatile-random视expire和业务情况而定