• redis内存限制管理--maxmemory和maxmemory-policy


      作为内存数据库,为了防止redis占用过多的内存对其他的应用程序造成影响,可以在redis.conf文件中通过设置maxmemory选项对redis所能够使用的最大内存做限制,并通过maxmemory_policy内存淘汰策略对redis占用内存超过maxmemory之后的行为做限制。

    一、设置 maxmemory

      a、通过redis-cli命令设置:config get maxmemory和 config set maxmemory 100MB; 

        

      b、修改redis配置文件redis.conf: maxmemory 100MB

        

    二、maxmemory-policy淘汰策略(默认:maxmemory-policy noeviction)

      当 Redis 内存使用达到 maxmemory 时,需要选择设置好的 maxmemory-policy 进行对数据进行淘汰机制。

            1.volatile-lru(least recently used):最近最少使用算法,从设置了过期时间的键key中选择空转时间最长的键值对清除掉;

            2.volatile-lfu(least frequently used):最近最不经常使用算法,从设置了过期时间的键中选择某段时间之内使用频次最小的键值对清除掉;

            3.volatile-ttl:从设置了过期时间的键中选择过期时间最早的键值对清除;

            4.volatile-random:从设置了过期时间的键中,随机选择键进行清除;

            5.allkeys-lru:最近最少使用算法,从所有的键中选择空转时间最长的键值对清除;

            6.allkeys-lfu:最近最不经常使用算法,从所有的键中选择某段时间之内使用频次最少的键值对清除;

            7.allkeys-random:所有的键中,随机选择键进行删除;

            8.noeviction:不做任何的清理工作,在redis的内存超过限制之后,所有的写入操作都会返回错误;但是读操作都能正常的进行;

      前缀为volatile-和allkeys-的区别在于二者选择要清除的键时的字典不同,volatile-前缀的策略代表从redisDb中的expire字典中选择键进行清除;allkeys-开头的策略代表从dict字典中选择键进行清除。  maxmemory-policy设置方式同maxmemory一样。

  • 相关阅读:
    前端时间格式化
    Navicat for Oracle
    在JSP中使用Session
    在JSP中使用MD5
    QTP的那些事用QTP测试Web上的Ajax
    VBS函数应用getobject的使用获得Automation对象
    QTP的那些事Excel导入QC没反应的解决方法
    QTP的那些事QC远程执行QTP经常出现QTP崩溃现象解决方案
    QTP的那些事自动化的个人体会感悟(转)
    QC在win7远程执行QTP脚本excel不能读取,及其其他win7问题解决方案(图解转)
  • 原文地址:https://www.cnblogs.com/zgxblog/p/14198543.html
Copyright © 2020-2023  润新知