最近发现一个好用的本地缓存,适用于数据量小,但是访问十分频繁的场景。
Google的Guava CacheBuilder
是类似于ConcurrentHashMap
一样的key-value
存储对象,是线程安全的,Cache
也是。有兴趣的可以看一下 源码,这里就不多说了。
com.google.guava
guava
11.0.2
源代码如下:
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import java.util.Random;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
/**
* @author: 慌途L
*/
public class CacheUtil {
// 初始化缓存,设置5秒过期
private static final Cache cache = CacheBuilder.newBuilder().expireAfterWrite(5, TimeUnit.SECONDS).build();
public static void main(String[] args) {
Thread t1 = new Thread(() -> {
while (true) {
try {
Thread.sleep(1000);
// get方法,从缓存中获取key的值,如果为空,则请求回调方法。我这里直接输出随机数
// get(K key, Callable
关注
打赏
热门博文
- ES(四)| 数据聚合(分组、求和、求平均值、求最大最小值)
- Canal | 工作原理、安装部署、使用第三方插件与SpringBoot完美整合
- Redis分布式缓存(三)| 哨兵集群原理、哨兵集群搭建、集群故障恢复、与SpringBoot集成
- Redis分布式缓存(二)| 主从架构搭建、全量/增量同步原理、主从同步优化
- Redis分布式缓存(一)| 单机安装、RDB和AOF持久化
- RabbitMQ(四) | 惰性队列 - 解决消息堆积问题
- RabbitMQ(三) | 死信交换机、死信队列、TTL、延迟队列(安装DelayExchange插件)
- RabbitMQ(二) | 消息可靠性(消息确认机制、消息持久化、消息重试机制)
- RabbitMQ(一) | MQ技术对比,以及对RabbitMQ五种消息模型的使用
- Docker | 安装RabbitMQ详细教程,以及安装遇到的问题:Stats in management UI are disabled on this node