面试时 Redis 内存淘汰总被问,但是总答不好,怎么解决?
什么是内存淘汰 内存淘汰,和平时我们设置redis key的过期时间,不是一回事;内存淘汰是说,假设我们限定redis只能使用8g内存,现在已经使用了这么多了(包括设置了过期时间的key和没设过期时间的key),那,后续的set操作,还怎么办呢? 是不是只能报错了? 那不行啊,不科学吧,因为有的key,可能已经很久没人用了,可能以后也不会再用到了,那我们是不是可以把这类key给干掉呢? 干掉key的过程,就是内存淘汰。 内存淘汰什么时候启用 当我们在配置文件里设置了如下属性时: # maxmemory <bytes> 默认,该属性是被注释掉的。 其实,这个配置项的注释,相当有价值,我们来看看: # Don't use more memory than the specified amount of bytes. # When the memory limit is reached Redis will try to remove keys # according to the eviction policy selected (see maxmemory-policy). # # If Redis can't remove keys according to the policy, or if the policy is # set to 'noeviction', Redis