大数跨境
0
0

Redis 6种淘汰机制,看看你知道哪些?

Redis 6种淘汰机制,看看你知道哪些? 终码一生
2022-07-19
2
点击“终码一生”,关注,置顶公众号
每日技术干货,第一时间送达!



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:6379> config get maxmemory-policy


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


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


127.0.0.1:6379> config get maxmemory


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


3、设置淘汰策略


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


maxmemory-policy allkeys-lru


通过命令修改淘汰策略:


127.0.0.1:6379> config set maxmemory-policy allkeys-lru


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


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


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


PS:防止找不到本篇文章,可以收藏点赞,方便翻阅查找哦。


往期推荐



别再用 offset 和 limit 分页了,性能太差!

Jenkins宣布仅支持Java 11及以上版本

再见 Notepad++ !!!

Spring Event,贼好用的业务解耦神器!

微信为什么使用 SQLite 保存聊天记录?

各国程序员薪资水平,咱有点惨...


【声明】内容源于网络
0
0
终码一生
开发者聚集地。分享Java相关开发技术(JVM,多线程,高并发,性能调优等),开源项目,常见开发问题和前沿科技资讯!
内容 1876
粉丝 0
终码一生 开发者聚集地。分享Java相关开发技术(JVM,多线程,高并发,性能调优等),开源项目,常见开发问题和前沿科技资讯!
总阅读1.1k
粉丝0
内容1.9k