美文网首页
5.Redis内存淘汰策略

5.Redis内存淘汰策略

作者: xMustang | 来源:发表于2020-02-23 15:32 被阅读0次

    Redis内存淘汰策略

    Redis在使用内存达到某个阈值(通过maxmemory配置)的时候,就会触发内存淘汰机制,选取一些key来删除。

    内存淘汰有许多策略,下面分别介绍这几种不同的策略。

    maxmemory <bytes> 配置内存阈值
    maxmemory-policy noeviction
    
    1. noeviction:当内存不足以容纳新写入数据时,新写入操作会报错。默认策略
    2. allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key。
    3. allkeys-random:当内存不足以容纳新写入数据时,在键空间中,随机移除某个key。
    4. volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,移除最近最少使用的key。
    5. volatile-random:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,随机移除某个key。
    6. volatile-ttl:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,有更早过期时间的key优先移除。

    如何选取合适的策略?

    比较推荐的是两种lru策略。根据自己的业务需求。如果你使用Redis只是作为缓存,不作为DB持久化,那推荐选择allkeys-lru;如果你使用Redis同时用于缓存和数据持久化,那推荐选择volatile-lru。

    相关文章

      网友评论

          本文标题:5.Redis内存淘汰策略

          本文链接:https://www.haomeiwen.com/subject/cepjqhtx.html