首页 > 数据库 > Redis > 正文

深入解析Redis的LRU机制

时间:2018年12月01日
这篇文章主要将给各位深入解析Redis的LRU机制,Redis会按LRU算法删除设置了过期时间但还没有过期的key,而对于没有设置过期时间的key,Redis是永远保留的,需要的朋友可以参考下吧。

这篇文章主要将给各位深入解析Redis的LRU机制,Redis会按LRU算法删除设置了过期时间但还没有过期的key,而对于没有设置过期时间的key,Redis是永远保留的,需要的朋友可以参考下吧。

在Redis中,如果设置的maxmemory,那就要配置key的回收机制参数maxmemory-policy,默认volatile-lru

原文中写得很清楚:

复制代码 代码如下:

Another way to use Redis as a cache is the maxmemory directive, a feature that allows specifying a maximum amount of memory to use. When new data is added to the server, and the memory limit was already reached, the server will remove some old data deleting a volatile key, that is, a key with an EXPIRE (a timeout) set, even if the key is still far from expiring automatically.


在Redis服务器占用内存达到maxmemory的情况下,当再想增加内存占用时,会按maxmemory-policy机制将老的数据删除。这里简单说一下volatile-lru,Redis会按LRU算法删除设置了过期时间但还没有过期的key,而对于没有设置过期时间的key,Redis是永远保留的。当然,如果你不想删除没有过期的key,那可以使用noeviction机制

 

复制代码 代码如下:

 


# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory
# is reached? You can select among five behavior:
#
# volatile-lru -> remove the key with an expire set using an LRU algorithm
# allkeys-lru -> remove any key accordingly to the LRU algorithm
# volatile-random -> remove a random key with an expire set
# allkeys-random -> remove a random key, any key
# volatile-ttl -> remove the key with the nearest expire time (minor TTL)
# noeviction -> don't expire at all, just return an error on write operations

深入解析Redis的LRU机制就为大家介绍到这里,想必都已有了一定的了解,更多关于Redis的内容请继续关注爱站技术频道。

上一篇:解析Redis中实用功能showlog

下一篇:介绍11个Redis Web应用程序场景

相关阅读

爱站科技 ©2017版权所有 免责声明 粤ICP备13073302号-3 粤公网安备 44030302000085号 热门关键词