redis内存限制管理--maxmemory和maxmemory-policy
解决办法
maxmemory 512mb  (内存4G设置512M,根据自己的内存设置)
maxmemory-policy allkeys-lfu

作为内存数据库,为了防止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一样。

版权声明:原创文章,未经允许不得转载,否则将追究法律责任。
本站资源由互联网搜集整理而成,版权均归原作者所有,仅供观摩学习,不保证资源的可用及完整性,不提供安装使用及技术服务。
如被发现批量采集内容的直接永久封号请知晓(永久会员除外,永久会员随意下载)!
若无意中侵犯到您的版权利益,请来信联系我们,我们会在收到信息后会尽快给予处理!版权说明点此了解