
本地缓存
文章平均质量分 77
埃泽漫笔
OceanBase开源项目ODC(OceanBase Developer Center)的核心贡献者,Github地址:https://github.com/oceanbase/odc,希望大家能赏脸支持下我们OceanBase公司的开源项目,点亮一颗小星星就行。
Maven中央仓库OceanBase开源组件 https://central.sonatype.com/artifact/com.oceanbase/db-browser 和 https://central.sonatype.com/artifact/com.oceanbase/ob-sql-parser 的核心贡献者。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
缓存失效算法
缓存失效算法主要是进行缓存失效的,当缓存中的存储的对象过多时,需要通过一定的算法选择出需要被淘汰的对象,一个好的算法对缓存的命中率影响是巨大的。常见的缓存失效算法有FIFO、LRU、LFU,以及Caffeine中的Window TinyLFU算法。原创 2025-01-28 19:27:09 · 545 阅读 · 0 评论 -
如何实现多级缓存
那种频繁更新的数据,其实并不适合放到本地缓存。在自动失效后,查询本地缓存就会有一次cache miss,然后下次再查询就会去分布式缓存查询,然后再缓存到本地缓存中即可。使用多级缓存,比较大的问题就是一致性如何保证,因为用到了本地缓存,而一个集群中有很多台服务器,每个服务器上面的本地缓存内容都不一样。,可以实现这个功能,当有实例需要更新本地缓存的时候,发一个MQ的广播消息,然后所有实例监听到这个广播消息后,各自更新自己的本地缓存。在做多级缓存的方案中,会先查询本地缓存,如果本地缓存查不到,再查询分布式缓存。原创 2025-01-28 19:17:28 · 968 阅读 · 0 评论 -
LRU 和 LFU 有啥区别
LRU(The Least Recently Used,最近最少使用)是一种常见的缓存算法,在很多分布式缓存系统(如Redis, Memcached)中都有广泛使用。顾名思义,LFU算法的思想是:如果一个数据在最近一段时间很少被访问到,那么可以认为在将来它被访问的可能性也很小。LRU算法的思想是:如果一个数据在最近一段时间没有被访问到,那么可以认为在将来它被访问的可能性也很小。LFU的每个数据块都有一个引用计数,所有数据块按照引用计数排序,具有相同引用计数的数据块则按照时间排序。原创 2025-01-27 18:40:41 · 1130 阅读 · 0 评论 -
本地缓存、分布式缓存、近端缓存
近端缓存(Edge Cache)通常是指位于网络边缘、离用户更近的位置的缓存。它可以用于在网络上尽可能快地向用户提供内容,减少用户请求的响应时间和带宽占用。离用户更近的位置,那么首先能想到的就是CDN,其实它就是一种使用近端缓存的技术,它将内容存储在分布在全球各地的缓存服务器上,以提供更快速和可靠的内容传输服务。除了CDN以外,应用服务器相比于分布式缓存,离用户也更近一些。所以和应用服务器部署在一起的缓存有时候可以叫做是近端缓存。比如我们前面提到的本地缓存,他也是近端缓存的一种。原创 2025-01-27 11:32:14 · 374 阅读 · 0 评论 -
如何实现本地缓存
考虑到以上这些问题之后,就可以考虑如何具体实现一个本地缓存了。最简单的方式是通过HashMap来实现一个本地缓存,因为他本身就是一种Key-Value结构的,并且如果使用的话,也能保证线程安全,不过需要自己实现对象上限过期策略以及清除策略。除此之外,也有一些比较成熟的开源的本地缓存框架可以直接使用,比较常用的有:●Caffeine (推荐●Encache推荐优先使用Caffeine。原创 2025-01-27 11:30:37 · 549 阅读 · 0 评论