本帖最后由 小扣子 于 2020-11-24 12:17 编辑
感谢柴郡猫大神原文,本人只做了一个搬运工,希望大家有用宝塔linux面板:清理redis占用内存,并限制maxmemory最大占用内存,设置redis置换策略本教程环境:宝塔linux面板,redis5.0操作系统:CentOS 7.3 x64宝塔面板默认redis安装目录:/www/server/redis清理redis占用的内存空间1.进入Redis目录[size=1em][size=1em]cd /www/server/redis
2.运行redis客户端[size=1em][size=1em]redis-cli
3.清理redis数据[size=1em][size=1em]flushall[size=1em]
[size=1em]#清空整个Redis服务器数据(删除所有数据库所有key)[size=1em]
[size=1em]flushdb[size=1em]
[size=1em]#清空当前数据库中的所有key
上面三步的截图
中间我输入的keys *这个命令是查看redis的数据的,意思是查看redis中的所有key,可以看到现在是没数据了。此时你发现,执行命令后内存占用并没有减少。原因redis官方有说明:
https://redis.io/topics/memory-optimization大致意思就是,redis实际已经清理了内存。但是他没有把占用的这部分内存返回给操作系统。而是留着预备下次新的数据直接写入。我们想清理掉应该怎么办呢?可以执行以下命令可以使用MEMORY PURGE命令进行内存整理。瞬间会将内存释放出来。下面截图我运行了两次。一次即可。
设置redis最大占用内存值这里以设置最大占用100MB为例。1.先查看下现在的占用设置[size=1em][size=1em]CONFIG GET maxmemory
一般返回
1) “maxmemory”
2) “0”这个0在x64系统下是不限制的意思。2.设置redis最大可使用100MB内存[size=1em][size=1em]CONFIG SET maxmemory 100MB
会返回个ok。3.再查看内存占用设置[size=1em][size=1em]CONFIG GET maxmemory
返回
1) “maxmemory”
2) “104857600”以上三步截图:设置redis数据置换策略上面我们设置了redis的最大占用内存,如果说内存占用达到了我们的设置值怎么办?我们需要对redis设置一下置换策略。redis置换策略可以对不经常使用的key数据进行替换删除一般有以下几种置换策略[size=1em][size=1em]noeviction: 不进行置换,表示即使内存达到上限也不进行置换,所有能引起内存增加的命令都会返回error
[size=1em]allkeys-lru: 优先删除掉最近最不经常使用的key,用以保存新数据
[size=1em]volatile-lru: 只从设置失效(expire set)的key中选择最近最不经常使用的key进行删除,用以保存新数据
[size=1em]allkeys-random: 随机从all-keys中选择一些key进行删除,用以保存新数据
[size=1em]volatile-random: 只从设置失效(expire set)的key中,选择一些key进行删除,用以保存新数据
[size=1em]volatile-ttl: 只从设置失效(expire set)的key中,选出存活时间(TTL)最短的key进行删除,用以保存新数据
具体选择那种徐要根据自己实际业务来选择。本教程用的allkeys-lru策略还是跟上面的一样的设置方式,进入redis-cli然后输入下面的命令即可。[size=1em][size=1em]CONFIG GET allkeys-lru
因为redis中我刚刚删除了所有数据,所以会得到(empty list or set)的提示大功告成!发文有限制,不以上图,太遗憾了,上原文地址cheshirex.com/2344.html
{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}
作者 管理员 企业
{{itemf.name}}
{{itemc.user_info.nickname}}
{{itemc.user_name}}
回复 {{itemc.comment_user_info.nickname}}
{{itemf.name}}