清理redis占用内存,并限制maxmemory最大占用内存,设置redis置换策略
redisredis内存清理redis置换策略redis设置最大内存
宝塔linux面板:清理redis占用内存,并限制maxmemory最大占用内存,设置redis置换策略
本教程环境:
宝塔linux面板,redis5.0
操作系统:CentOS 7.3 x64
宝塔面板默认redis安装目录:/www/server/redis
清理redis占用的内存空间
本文目录
- 1. 1.进入Redis目录
- 2. 2.运行redis客户端
- 3. 3.清理redis数据
- 4. 1.先查看下现在的占用设置
- 5. 2.设置redis最大可使用100MB内存
- 6. 3.再查看内存占用设置
1.进入Redis目录
cd /www/server/redis
2.运行redis客户端
redis-cli
3.清理redis数据
flushall#清空整个Redis服务器数据(删除所有数据库所有key)flushdb#清空当前数据库中的所有key
上面三步的截图
中间我输入的keys *这个命令是查看redis的数据的,意思是查看redis中的所有key,知识兔可以看到现在是没数据了。
此时你发现,执行命令后内存占用并没有减少。
原因redis官方有说明:https://redis.io/topics/memory-optimization
大致意思就是,redis实际已经清理了内存。但是他没有把占用的这部分内存返回给操作系统。而是留着预备下次新的数据直接写入。
我们想清理掉应该怎么办呢?
可以执行以下命令
可以使用MEMORY PURGE命令进行内存整理。瞬间会将内存释放出来。下面截图我运行了两次。一次即可。
设置redis最大占用内存值
这里以设置最大占用100MB为例。
1.先查看下现在的占用设置
CONFIG GET maxmemory
一般返回
1) “maxmemory”
2) “0″
这个0在x64系统下是不限制的意思。
2.设置redis最大可使用100MB内存
CONFIG SET maxmemory 100MB
会返回个ok。
3.再查看内存占用设置
CONFIG GET maxmemory
返回
1) “maxmemory”
2) “104857600″
以上三步截图:
设置redis数据置换策略
上面我们设置了redis的最大占用内存,如果知识兔说内存占用达到了我们的设置值怎么办?
我们需要对redis设置一下置换策略。
redis置换策略可以对不经常使用的key数据进行替换删除
一般有以下几种置换策略
noeviction: 不进行置换,表示即使知识兔内存达到上限也不进行置换,所有能引起内存增加的命令都会返回errorallkeys-lru: 优先删除掉最近最不经常使用的key,用以保存新数据volatile-lru: 只从设置失效(expire set)的key中选择最近最不经常使用的key进行删除,用以保存新数据allkeys-random: 随机从all-keys中选择一些key进行删除,用以保存新数据volatile-random: 只从设置失效(expire set)的key中,知识兔选择一些key进行删除,用以保存新数据volatile-ttl: 只从设置失效(expire set)的key中,选出存活时间(TTL)最短的key进行删除,用以保存新数据
具体选择那种徐要根据自己实际业务来选择。
本教程用的allkeys-lru策略
还是跟上面的一样的设置方式,进入redis-cli然后知识兔输入下面的命令即可。
CONFIG GET allkeys-lru
因为redis中我刚刚删除了所有数据,所以会得到(empty list or set)的提示
大功告成!
下载仅供下载体验和测试学习,不得商用和正当使用。
[ppwp passwords=”zhishitu.cn”]
下载体验
应版权要求,禁止分享,敬请谅解,有问题务必找客服哈。
有问题找客服哈,并领取学习福利!
[/ppwp]