当Redis的最大可用内存空间都占满时,Redis会如何处理呢? Redis给出了6个选项,让我们自行选择 volatile-lru 使用LRU算法,从设置了过期时间的key中选择删除 allkeys-lru 使用LRU算法,从所有key中选择删除 volatile-random 从设置了过期时间的key中随机删除 allkeys-random 从所有的key中随机删除 volatile-ttl 从设置了过期时间的key中选择最先过期的删除 noeviction 不处理,当有写操作时,直接返回错误 Redis的默认策略是 noeviction,配置项为 maxmemory-policy 对于LRU,默认情况下Redis会采集5个key,然后从中根据LRU选择一个进行删除 Redis选择5这个数,是因为5比较适中,比如选择10会很准确,但是比较耗费CUP,选择3的话会非常快,但是会降低准确度 这个数可以自己配置,配置项为 maxmemory-samples,默认值是5