您的位置:首页 > 数据库 > Redis

redis数据淘汰机制

2017-03-30 23:04 351 查看
在redis中,redis允许用户更改设置最大内存maxmemory,在每次写入或更新等操作时候,redis会检查使用的内存,当内存达到最大值得时候,就会进行数据淘汰策略,从而换取内存出来

redis数据淘汰策略有6种:

volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
no-enviction(驱逐):禁止驱逐数据

redis 确定驱逐某个键值对后,会删除这个数据并,并将这个数据变更消息发布到本地(AOF
持久化)和从机(主从连接)。

如果设置了过期时间,在达到内存最大的时候,建议可以使用第一种volatile-lru淘汰策略

如果没有设置过期时间,在达到内存最大时候,建议使用allkeys-lru淘汰策略

使用的2种算法: http://blog.csdn.net/zdy0_2004/article/details/44685615  这个博客感觉不错,对于我们这些新手理解起来可能比较容易!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: