本地缓存和redis哪个做一级 本地缓存区别

admin2024-06-06  22

本地缓存

本地缓存和redis哪个做一级 本地缓存区别,本地缓存和redis哪个做一级 本地缓存区别_缓存,第1张

本地缓存和redis哪个做一级 本地缓存区别,本地缓存和redis哪个做一级 本地缓存区别_缓存_02,第2张

缺点

1、高并发的场景,应用重启之后,本地缓存就失效了,系统的负载就比较大,需要花较长的时间才能恢复;

2、每个应用节点都会维护自己的单独缓存缓存同步比较头疼

如果需要更新所有实例的本地缓存,可以采用以下两种方式:

1.配置中心更新;通过类似于Redis中的发布/订阅功能解决;

2.一个控制应用通过调用其他实例的接口进行通知缓存刷新;或者其他实例定时任务不断扫描获取最新数据;

3.或者canal监控binlog推送变更消息。

分布式缓存

优点

1、容量和性能可扩展

通过增加集群中的机器数量,可以扩展缓存的容量和并发读写能力。同时,缓存数据对于应用来讲都是共享的。

2、高可用性

由于数据被分布在多台机器上,即使其中一台机器故障,缓存服务也能继续提供服务。

缺点

1、网络延迟

分布式缓存通常需要通过网络通信来进行数据读写,可能会出现网络延迟等问题,相对于本地缓存而言,响应时间更长。

2、复杂性

分布式缓存需要考虑序列化、数据分片、缓存大小等问题,相对于本地缓存而言更加复杂。

多级缓存

Ehcache + Redis 

  1. 离用户越近,速度越快;
  2. 减少分布式缓存查询频率,降低序列化和反序列化的 CPU 消耗;
  3. 大幅度减少网络 IO 以及带宽消耗。

本地缓存做为一级缓存,分布式缓存做为二级缓存,首先从一级缓存中查询,若能查询到数据则直接返回,否则从二级缓存中查询,若二级缓存中可以查询到数据,则回填到一级缓存中,并返回数据。若二级缓存也查询不到,则从数据源中查询,将结果分别回填到一级缓存,二级缓存中。

本地缓存和redis哪个做一级 本地缓存区别,本地缓存和redis哪个做一级 本地缓存区别_数据_03,第3张

优化:

1、惰性加载:refresh 机制,每隔一段时间会调用自定义 LoadingCache 线程池(5 个最大线程,5 个核心线程)去导购服务同步数据到本地缓存和 Redis 中

2、消息机制来更新缓存数据:当数据发生变化时,通知业务网关重新拉取数据,更新缓存。 或者canal监控binlog推送变更消息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!