栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redis入门到精通(七),Redis的淘汰策略

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis入门到精通(七),Redis的淘汰策略

一.Redis的淘汰策略 1.为什么要淘汰

        Redis的数据读写基于内存,Redis虽然快,但是内存成本还是比较高的,而且基于内存Redis不适合存储太大量的数据。Redis可以使用电脑物理最大内存,当然我们通常会通过设置maxmemory参数限制Redis内存的使用, 为了让有限的内存空间存储更多的有效数据,我们需要设置淘汰策略,让Redis自动淘汰那些老旧的,或者使用频率很低的数据。

       Redis 确定删除某个键值对后,会删除这个数据并将这个数据变更消息发布到本地(AOF 持久化)和从机(主从连接)。

        如果不设置太太策略的话,当Redis中的数据越来越多,如果达到堆限制,将导致Redis的内存不足异常而终止所以我们在使用Redis时一定要配置淘汰策略。 

        关于设置Key过期时间的方式方法前面文章有详细介绍,知道你们懒得找,把传送门也给你们附上        

Redis如何设置Key的过期时间

2.淘汰策略有哪些

volatile-lru:使用LRU算法从已设置过期时间的数据集中淘汰最近最少使用的数据(expires)

allkeys-lru:根据LRU算法从所有数据集中淘汰最近最少使用的数据(dict)

volatile-lfu:从已设置过期时间的数据集挑选使用频率最低的数据淘汰(expires)

allkeys-lfu:从数据集中挑选使用频率最低的数据淘汰(dict)

volatile-random:从已设置过期时间的数据集中随机淘汰数据(expires)

allkeys-random:所有数据集中随机淘汰数据(dict)

volatile-ttl:从已设置过期时间的数据集中淘汰最近过期的数据(expires) 

noeviction:不会过期,当内存超过设置的最大内存时写操作报错,读操作正常(默认配置)

分类的方法很多,我是按照算法分类的,即分为LRU、LFU、TTL和RANDOM四种

        LRU和LFU算法的区别:

        LRU是从满足算法条件的数据中选择空闲时间最长的

        LFU是从满足算法条件的数据中选择使用频率最低的

        两者功能没有太大差别,具体性能没有做过测试,我都是随便选一种用就可以啦,如果想继续深入研究的话欢迎交流

3.淘汰策略配置

3.1.最大内存配置

        方式一:修改配置文件中的 maxmemory,放开注释, 根据业务需求设置大小

maxmemory <100mb    #设置最大内存大小为100MB

        方式二:命令行设置

127.0.0.1:6379> config get maxmemory    #命令行查看当前设置最大内存

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

     

  3.2.淘汰策略配置

        方式一:修改配置文件中的 maxmemory-policy ,放开注释,根据业务需求修改即可

maxmemory-policy noeviction    #noeviction 为默认的策略,根据业务需求修改即可

         方式二:命令行设置

127.0.0.1:6379> config get maxmemory-policy    #命令行查看当前淘汰策略

127.0.0.1:6379> config set maxmemory-policy noeviction     #noeviction 为默认的策略

        至此,Redis的淘汰策略就到这里吧,下面几期会跟大家聊聊我们的代码中该如何操作Redis。看情况可能还会跟大家聊一些关于Redis的主流框架和集群,因为我发现越深入浏览量越低,所以在考虑要聊点其他的还是再稍微深入一些。ps因为五一假期玩的太爽啦,酝酿了点也都已经发出来了,上周末调休加上最近手头的项目有点赶进度,所以这一期有点短。还望各位看官点个赞再走吧,给您劈个叉~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/871162.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号