绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Redis 6种淘汰机制,看看你知道哪些?
2022-08-04 15:44:24

来自:blog.csdn.net/ju_362204801/article/details/114441137


redis是个基于内存的缓存数据库,既然是基于内存的,那肯定就会有存满的时候

如果真的存满了,再有新的数据过来肯定就存不进去了

此时redis会执行既定的一些淘汰策略,本文大概讲一下redis六种淘汰策略

 

01
六种淘汰策略


1.noeviction(默认策略):对于写请求不再提供服务,直接返回错误(DEL请求和部分特殊请求除外)

2.allkeys-lru:从所有key中使用LRU算法进行淘汰(LRU算法:即近少使用算法)

3.volatile-lru:从设置了过期时间的key中使用LRU算法进行淘汰

4.allkeys-random:从所有key中随机淘汰数据

5.volatile-random:从设置了过期时间的key中随机淘汰

6.volatile-ttl:在设置了过期时间的key中,淘汰过期时间剩余短的

当使用volatile-lru、volatile-random、volatile-ttl这三种策略时,如果没有key可以被淘汰,则和noeviction一样返回错误



02
如何获取及设置内存淘汰策略


1、获取当前内存淘汰策略:



127.0.0.1:6379config get maxmemory-policy


可以看到当前使用的默认的noeviction策略

2、获取Redis能使用的大内存大小



127.0.0.1:6379config get maxmemory


如果不设置大内存大小或者设置大内存大小为0,在64位操作系统下不限制内存大小,在32位操作系统下多使用3GB内存。32 位的机器大只支持 4GB 的内存,而系统本身就需要一定的内存资源来支持运行,所以 32 位机器限制大 3 GB 的可用内存

3、设置淘汰策略

通过配置文件设置淘汰策略(修改redis.conf文件):



maxmemory-policy allkeys-lru


通过命令修改淘汰策略:



127.0.0.1:6379config set maxmemory-policy allkeys-lru


4、设置Redis大占用内存大小


#设置Redis大占用内存大小为100M
127.0.0.1:6379config set maxmemory 100mb

<END>

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Redis技术
创建时间:2020-02-07 19:17:47
Redis技术深入
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 小小新的小小白
    栈主

小栈成员

查看更多
  • 栈栈
  • 小雨滴
  • 雨果的书房
  • chenff
戳我,来吐槽~