在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
缓存淘汰策略有几种?分别怎么用?使用缓存后因缓存的容量有限,等缓存满了之后需要淘汰一些数据,因此在实现缓存时必须要设计一套缓存淘汰策略,按照某种机制回收缓存占用的内存,保证缓存数据不会无限地增长直到撑爆内存。
缓存是将一些需要读取数据放在磁盘或者内存中,由于追求速度从而一般是放在内存中。缓存容量有限若缓存满了系统是如何淘汰一些数据的呢?
使用了缓存后因缓存的容量有限,等缓存满了之后需要淘汰一些数据,如Map数据结构是一个思路,我们自己的电脑存储文件或者是和JVM存储对象一样内存不是无限的。因此在实现缓存时必须要设计一套缓存淘汰策略,按照某种机制回收缓存占用的内存,保证缓存数据不会无限地增长直到撑爆内存。
缓存淘汰策略有几种?
一、 LRU 最近最少使用
LRU(Least Recently Used)是最经典的内存淘汰策略,其设计原则是 “如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小”。即根据数据的最近访问时间来进行淘汰,缺点是可能会由于一次冷数据的批量查询而误删除大量的热点数据。
二、近似 LRU 算法
类似 LRU 算法只是每次随机选择一批数据进行 LRU 淘汰,而不是全量 LRU 运算,牺牲部分准确度,以提升算法执行效率。Redis 3.0 之后对其进行了优化,维护了一个侯选池将随机选择的数据放入侯选池中进行 LRU 运算。当侯选池放满后新随机的数据会替换掉池中最近被访问的数据。
三、 TTL 超时时间
TTL(Time To Live)是指用户为缓存设置的过期时间,当前时间到达过期时间时将删除缓存;如果缓存空间已满,则优先淘汰最接近过期时间的数据。
四、LFU 最近最不经常使用
LFU(Least Frequently Used)策略会记录每个缓存数据的最近访问次数(频率),并优先清除使用次数较少的数据。这种算法存在的显著缺点是,最新写入的数据由于访问次数少,常常刚被缓存就删除了。
五、FIFO 先进先出
FIFO(First In First Out)先进先出策略会将数据按照写入缓存的顺序进行排队,当缓存空间不足时,最先进入缓存的数据会被优先删除。是一种比较死板的策略不考虑数据热度可能会淘汰大量的热点数据,但是实现起来相对容易。
六、Random 随机淘汰策
略随机淘汰策略一般不建议使用。缓存有很多优点,缓存时能够最快提高服务响应速度的优化,使用缓存能够最快以非常高的效率提高应用的性能。
通过缓存加速读写速度,在内存中读写比硬盘速度快,降低数据库服务器的负载:比如业务端的请求的数据大多数都由Redis服务器来处理,大大减轻MySQL服务器的压力。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Java基础语法之注解学习笔记
在学习Java基础语法的时候,初学者常常会分不清注解与注释的区别。其实注解和注释是完全不一样的两个概念。简单来讲,注释就是方便自己或他人阅读代码,对编程思路或程序作用的解释说明。而注解则是代码里的特殊标记,是给编译器阅读的元数据。本文将为大家详细讲解一下Java基础语法中有关注解的相关知识点,需要学习的小伙伴可以跟着文章一起来梳理一遍知识点。
4645
2020-01-06 16:53:17
Java技术培训机构出来对比科班学校有哪些优势?
Java编程学校和Java培训机构在一定层面上没太大区别,学校偏理论性教学自身的学习动手能力强,毕业找到编程工作,在公司基本上属于优质资源,靠自身的努力将将知识与实践结合做到学以致用。Java技术培训机构更侧重项目实践,如果两者结合学习效果更好。
3725
2020-07-24 11:03:14
Java线上课程值得买吗?
随着在线教育的发展,线上教学服务得到了进一步的完善,许多Java线上培训机构也如雨后春笋般冒了出来。一些学习者会在线上和线下培训之间犹豫不决,其实这两种培训方式本身没有什么优劣之分,各自都有自己的优缺点。至于,Java线上课程值得买吗?这个还得具体课程具体分析,下面以博学谷的Java在线就业班的课程为例,一起来看看课程值不值得买吧~
4983
2020-07-30 17:29:04
零基础学Java看什么书?
作为Java初学者来说,最痛苦的莫过于选择范围太广,可以读的书太多找不到适合自己学习的资料无所适从。没有Java编程经验的初学者要入门,要读一些基础知识类的书籍,快速的掌握Java基础语法和基本用法。
3563
2021-01-18 11:18:03
去Java培训班真的有用吗?
如果你是零基础,选择自学确实存在一定难度,在自学的过程,没有明确的学习方向,学习过程中会遇到很多的问题无法及时解决,而参加Java培训班有系统的课程大纲,零基础由浅入深学习,遇到问题还有老师及时解答,帮你解决学习中的各种问题。
3627
2021-01-25 10:55:04