本地缓存和分布式缓存

本地缓存和分布式缓存

分布式缓存本地缓存
是否外部服务是(独立的系统)否(应用中的组件)
使用维护复杂度
速度高(无网络开销和序列化)
是否适用于分布式服务适用不适用(数据存在各节点内存中,需要手动维护保持各节点缓存一致才适用)
优点一致性更好;不受应用宕机影响;可以存储大数据量;速度更快;操作简单
缺点需要单独维护独立的系统复杂度更高;速度比本地缓存慢;分布式服务中可能存在缓存不一致情况;占用服务本身的堆内存,影响垃圾回收,影响系统性能;系统重启后丢失;储存能力有限;
使用场景所有缓存使用场景;单个实例的服务,较小且频率可见的访问场景,或者数据基本不会变化的数据,读;
常见技术方案redis(优);MemCachedCaffeine(优) ;Guava Cache;

-解决分布式服务使用本地缓存的方案

可以维护一个静态ConcurrentMap,key为具体
业务名,value为List缓存,在获取缓存的地方改为先从这个map里拿,拿不到再从redis里拿,拿完再放到map里即可,
当然维护这个缓存的方式就稍微麻烦点,由于部署是集群的,所以要保证每台节点的本地缓存(副本)都要被维护,因此可以简单利用redis做一个广播消息,在维护的地方发布个订阅消息,然后在消费者端接受到将map里对应的数据清除即可(每一台节点都会收到这个消息并清除map数据,当然重启也没事,重启过后map是空的,重新拿一下就好)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值