• 限制Redis使用的最大内存


    一、内存到达最大限制移除策略

    LRU: Least Recently Used 最少最近使用 (从时间跨度上来,访问时间在最早的那个优先剔除)访问时间最早的优先剔除

    LFU: Least Frequently Used 访问次数最少的优先剔除。

    1.volatile-lru -> Evict using approximated LRU among the keys with an expire set.  仅对设置了过期时间的键采取LRU淘汰
    2.allkeys-lru -> Evict any key using approximated LRU. 对所有的键都采取LRU淘汰,当预期请求符合一个幂次分布(二八法则等),比如一部分的子集元素比其它其它元素被访问的更多时,可以选择这个策略。
    3.volatile-lfu -> Evict using approximated LFU among the keys with an expire set. 对有过期时间的key采用LFU淘汰算法
    4.allkeys-lfu -> Evict any key using approximated LFU. 对全部key采用LFU淘汰算法
    5.volatile-random -> Remove a random key among the ones with an expire set. 随机回收设置过期时间的键
    6.allkeys-random -> Remove a random key, any key.  随机回收所有的键 。循环连续的访问所有的键时,或者预期请求分布平均(所有元素被访问的概率都差不多)
    7.volatile-ttl -> Remove the key with the nearest expire time (minor TTL)。 仅淘汰设置了过期时间的键---淘汰生存时间TTL(Time To Live)更小的键
    8.noeviction -> Don't evict anything, just return an error on write operations. 如果缓存数据超过了maxmemory限定值,并且客户端正在执行的命令(大部分的写入指令,但DEL和几个指令例外)会导致内存分配,则向客户端返回错误响应

    二、设置redis.conf配置文件最大使用内存和移除策略

        1.maxmemory: 配置Redis存储数据时指定限制的内存大小,比如100m。当缓存消耗的内存超过这个数值时, 将触发数据淘汰。该数据配置为0时,表示缓存的数据量没有限制, 即LRU功能不生效。64位的系统默认值为0,32位的系统默认内存限制为3GB

        2.maxmemory_policy: 触发数据淘汰后的淘汰策略

        3.maxmemory_samples: 随机采样的精度,也就是随即取出key的数目。该数值配置越大, 越接近于真实的LRU算法,但是数值越大,相应消耗也变高,对性能有一定影响,样本值默认为5。

      

  • 相关阅读:
    Python实现快排
    numpy基础篇-简单入门教程2
    Python 基本语法
    numpy基础篇-简单入门教程1
    Markdown编辑器 常用语法
    Git学习笔记 2,GitHub常用命令
    Git学习笔记 1,GitHub常用命令1
    交通 数据集
    杭电oj 求绝对值
    杭电oj 计算两点间的距离
  • 原文地址:https://www.cnblogs.com/Adoni/p/12911475.html
Copyright © 2020-2023  润新知