多级缓存

本地缓存(又叫进程内缓存)比较:

 

多级缓存方案搭配示例

  1. 值较小、热度集中、更新不频繁:Caffeine(JVM KV) - Redis(KV) - MySql(DB ROW)
  2. 值较大、热度集中、更新不频繁:Caffeine(JVM KV) - MySql(DB ROW)
  3. 值较小、热度分散、更新频繁:Redis(KV) - MySql(DB ROW)
  4. 值较大、热度分散:MySql(DB ROW) Cluster
  5. 基于模糊匹配:ElasticSearch(FS InvertedIndex) - MySql(DB ROW)

 

使用本地缓存的优点:以空间换时间,加快查询效率,减少网络io(redis的网络开销)

缺点:数据同步问题与编程复杂度问题。

 

为什么有了redis还需要进程缓存?

因为需要io(网络)的消耗,还需要序列化和反序列化的操作

 

本地缓存的使用条件:

不实时,不能强一致性,读多写少。设置缓存使用内存的大小和过期时间。

 

维护缓存数据的一致性:

用caffeine和redis构建多级缓存,caffeine和redis的数据一致性怎么操作好一点?方法二:写操作 先更新数据库,然后删除redis,最后更新值到redis上,然后利用redis的发布订阅机制去更caffeine。

这就需要本地缓存的值是读多写少,而且不需要经过复杂的运算才能更新redis。Spring cache和caffeine的关系就像jdbc和mysql的关系,cache是一种规范标准,caffeine是实现这个标准的产品。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值