• 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一样。

  • 相关阅读:
    MySQL视图——学习笔记及实验
    小学生四则运算自动刷题库优化升级
    软件工程小项目——小学生四则运算自动刷题库
    笔记--运算符、表达式和语句
    笔记--基本数据类型与数组
    笔记--java入门
    原因: java.lang.ClassNotFoundException: Hello
    使用gopm代替go get 解决go包卡慢的问题
    调用微信截图功能c# 截图带扩展名
    如何用golang搜索抓取淘宝商品
  • 原文地址:https://www.cnblogs.com/zgxblog/p/14198543.html
Copyright © 2020-2023  润新知