小实验·Guava同步缓存&异步缓存

本文探讨了在面临大量数据查询导致性能问题时,如何利用Guava的同步和异步缓存来提高效率。同步缓存虽简单但可能导致阻塞,而异步缓存则能在数据加载期间避免阻塞,提供更好的用户体验。文中通过实例代码展示了两种缓存的使用和效果,并提到了Guava作为本地二级缓存与Redis结合使用的行业常见方案。
摘要由CSDN通过智能技术生成

背景

最近在写代码的时候,在for循环中根据key从redis中获取value;

然后,问题就出现了:for循环了3000+次,足足耗时10+秒。。。(一开始的时候没有意识到会有这么多数据)

so,how to deal it ???

使用Guava缓存

同步缓存

Guava缓存网上资料不少,将源码的也多;

我个人理解就是放在本地的一个高级点的Map(接触不深,堪堪够满足当前需要);

好比平时我们自己在代码中搞的那些个List或者Map之类的一个作用,就是用来当本地缓存;

只不过Guava这个多了很多功能(比如设置本地缓存的大小上限免得内存玩爆,还有什么自动更新的策略等),线程的问题也不需要自己考虑,总之用就完了;

PS:多少一句,其实使用Redis做缓存,然后使用Guava这种工具做本地的二级缓存的方案,都是业内的“老知识”了,然而我也是最近碰到了,才知道的

。。。。。上代码

同步缓存代码

import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;

import java.util.Date;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

public class 
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值