我有一个关于Redis缓存行为的问题,请澄清一下 -
比如说,对于一个键"xyz",如果TTL设置为15分钟。如果在服务器级别上它的驱逐策略设置为"allkeys-lru"。那么过期的项目(由于TTL)是过期还是等到内存满了再过期?
比如说,对于一个键"xyz",如果TTL设置为15分钟。如果在服务器级别上它的驱逐策略设置为"allkeys-lru"。那么过期的项目(由于TTL)是过期还是等到内存满了再过期?
当内存使用量超过最大值时,逐出策略才会生效。只要你在内存限制内,易失性键(key)将在应过期时过期。
一旦内存满了,LRU算法就会启动,逐出最久未使用的键(key)。在allkeys-lru
中,无论一个键(key)是否过期以及TTL是什么,都会被逐出最少使用的项目。在volatile-lru
中,只有到期的键(key)才会使用此算法被逐出。
volatile-lru
和allkeys-lru
策略会产生相同的效果,对吗? - Pere Joan Martorell