Redis的内存淘汰策略配置


Redis是基于内存的高性能键值存储系统,它将数据全部加载在内存中进行读写操作。但内存资源是有限的,当Redis使用的内存接近或超过系统可用内存时,就需要通过一些策略来释放内存空间。

数据淘汰策略

Redis的内存数据淘汰策略主要分为三类:针对过期键的淘汰策略、针对所有键的淘汰策略、禁止淘汰的策略。

1、针对过期键的策略主要有以下几种:

  • volatile−lru:从设置了过期时间的键中,选择最近最少使用的键进行删除(最长时间未使用)。
  • volatile−lfu:从设置了过期时间的键中,选择最少使用次数的键进行删除。
  • volatile−ttl:从设置了过期时间的键中,选择剩余时间最短的键进行删除。

2、针对所有键的策略主要有以下几种:

  • allkeys−lru:从所有的键中,选择最近最少使用的键进行删除。
  • allkeys−lfu:从所有的键中,选择最少使用次数的键进行删除。
  • allkeys−random:从所有的键中,随机选择一个进行删除。

3、禁止淘汰策略:

  • noeviction:此项为默认设置。若数据达到了最大内存限制,再向Redis中写入数据时会报错。

淘汰策略配置

1、maxmemory :最大使用内存,默认是不限。在生产环境必须设置该参数,建议按服务器物理内存的50%-70%进行配置。单位可以是以下几种:

  • K、M、G:1K=1000字节、1M=1000K、1G=1000M。
  • KB、MB、GB:1KB=1024字节、1M=1024K、1G=1024M。
redis

2、maxmemory−policy noeviction:默认禁止淘汰,可根据需要修改。

redis

发表评论

评论数量:0