阿里华为等大厂的本地缓存、分布式缓存解决方案详解(下)

简介: 阿里华为等大厂的本地缓存、分布式缓存解决方案详解

缺点:

  • 并发
  • 容量
  • 过期策略


为了解决本地缓存数据的实时性问题,目前大量使用的是结合ZooKeeper的自动发现机制,实时变更本地静态变量缓存:


美团的基础配置组件MtConfig,采用的就是类似原理,使用静态变量缓存,结合ZooKeeper的统一管理,做到自动动态更新缓存。


  • Mtconfig实现图

image.png


这类缓存,优点是能直接在heap区内读写,最快也最方便。

缺点同样是受heap区域影响,缓存的数据量非常有限,同时缓存时间受GC影响。

主要满足单机场景下的小数据量缓存需求,同时对缓存数据的变更无需太敏感,如一般配置管理、基础静态数据等场景。


3.1.2 Ehcache(使用度较低)

3.1.3 Guava Cache(常用)

3.1.4 Spring Cache(常用)

3.1.5 本地缓存的缺陷


  • 无法在多个集群环境同步。当集群规模增大,缓存的读写放大
  • 在JVM中长期占用内存,如果是堆内存,会影响GC
  • 缓存数据的调度处理,影响执行业务的线程,抢资源。


所以使用集中处理缓存,单独部署管理缓存。

这也有缺点:网络请求层数增加;如果故障,缓存全部延迟或失效。不过这仍是主流的缓存方案。


3.2 分布式缓存

Memcached缓存

Redis 缓存


实际工程中,对于缓存的应用可以有多种的实战方式,包括侵入式硬编码,抽象服务化应用,以及轻量的注解式使用等。

目录
相关文章
|
1月前
|
Oracle 关系型数据库 分布式数据库
分布式数据库集成解决方案
分布式数据库集成解决方案
204 0
|
11天前
|
存储 缓存 NoSQL
缓存、分布式缓存和持久化
这篇内容介绍了缓存的概念和Redis的作用,以口袋与公文包的比喻解释了缓存如何提高数据访问速度。Redis是一个内存中的高级缓存系统,能提升系统响应速度。接着讨论了为何需要分布式缓存,通过多个“篮子”(Redis节点)解决单点故障和性能瓶颈,保证高可用性和数据安全性。最后提到了Redis的两种持久化机制——RDB(定期数据快照)和AOF(记录写操作日志),分别用照片备份和实时同步来比喻,说明它们在数据丢失风险和恢复速度上的权衡。
|
17天前
|
缓存 NoSQL 数据库
关于高并发下缓存失效的问题(本地锁 && 分布式锁 && Redission 详解)
关于高并发下缓存失效的问题(本地锁 && 分布式锁 && Redission 详解)
30 0
|
27天前
|
缓存 应用服务中间件 数据库
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(多级缓存设计分析)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(多级缓存设计分析)
33 1
|
1月前
|
存储 缓存 NoSQL
[Redis]——缓存击穿和缓存穿透及解决方案(图解+代码+解释)
[Redis]——缓存击穿和缓存穿透及解决方案(图解+代码+解释)
248 0
|
1月前
|
存储 缓存
本地缓存和分布式缓存区别
【2月更文挑战第16天】
39 2
本地缓存和分布式缓存区别
|
1月前
|
存储 缓存 算法
说说什么是本地缓存、分布式缓存以及多级缓存,它们各自的优缺点?
说说什么是本地缓存、分布式缓存以及多级缓存,它们各自的优缺点?
|
1月前
|
Oracle 关系型数据库 分布式数据库
分布式数据库集成解决方案2
分布式数据库集成解决方案2
153 0
|
2月前
|
消息中间件 算法 数据库
ChatGPT:分布式事务解决方案
ChatGPT:分布式事务解决方案
36 0
|
1月前
|
缓存 NoSQL 安全
【Redis】缓存穿透
【Redis】缓存穿透
30 0