SpringBoot加入Guava Cache实现本地缓存

也可以参考  这里

在pom.xml中加入guava依赖

1     <dependency>
2       <groupId>com.google.guava</groupId>
3       <artifactId>guava</artifactId>
4       <version>18.0</version>
5     </dependency>

创建一个CacheService,方便调用

1 public interface CacheService {
2     //存
3     void setCommonCache(String key,Object value);
4     //取
5     Object getCommonCache(String key);
6 }

其实现类

 1 import com.google.common.cache.Cache;
 2 import com.google.common.cache.CacheBuilder;
 3 import com.wu.service.CacheService;
 4 import org.springframework.stereotype.Service;
 5 import javax.annotation.PostConstruct;
 6 import java.util.concurrent.TimeUnit;
 7 @Service
 8 public class CacheServiceImpl implements CacheService {
 9
10     private Cache<String,Object> commonCache=null;
11
12     @PostConstruct//代理此bean时会首先执行该初始化方法
13     public void init(){
14         commonCache= CacheBuilder.newBuilder()
15                 //设置缓存容器的初始化容量为10(可以存10个键值对)
16                 .initialCapacity(10)
17                 //最大缓存容量是100,超过100后会安装LRU策略-最近最少使用,具体百度-移除缓存项
18                 .maximumSize(100)
19                 //设置写入缓存后1分钟后过期
20                 .expireAfterWrite(60, TimeUnit.SECONDS).build();
21     }
22
23     @Override
24     public void setCommonCache(String key, Object value) {
25         commonCache.put(key,value);
26     }
27
28     @Override
29     public Object getCommonCache(String key) {
30         return commonCache.getIfPresent(key);
31     }
32 }

原文地址:https://www.cnblogs.com/wuba/p/11458276.html

时间: 2024-08-11 04:46:13

SpringBoot加入Guava Cache实现本地缓存的相关文章

使用guava cache再本地缓存热点数据

某些热点数据在短时间内可能会被成千上万次访问,所以除了放在redis之外,还可以放在本地内存,也就是JVM的内存中. 我们可以使用google的guava cache组件实现本地缓存,之所以选择guava是因为它可以控制key和value的大小和超时时间,可以配置LRU策略且guava是线程安全的. 首先引入guava cache <dependency> <groupId>com.google.guava</groupId> <artifactId>gua

guava cache与spring集成

缓存的背景 缓存,在我们日常开发中是必不可少的一种解决性能问题的方法.简单的说,cache 就是为了提升系统性能而开辟的一块内存空间.在cpu进行计算的时候, 首先是读取寄存器,然后内存,再是硬盘.由于寄存器容量很小,不太适合存储我们需要快速读取的数据,放在硬盘中话,效率太低,所以大多数人将一些静态资源或者不经常修改的数据放在内存中. 缓存的作用 缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用.在日常开发的很多场合,由于受限于硬盘 IO的性能或者我们自身业务系统的数

Guava学习笔记:Guava cache

缓存,在我们日常开发中是必不可少的一种解决性能问题的方法.简单的说,cache 就是为了提升系统性能而开辟的一块内存空间. 缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用.在日常开发的很多场合,由于受限于硬盘IO的性能或者我们自身业务系统的数据处理和获取可能非常费时,当我们发现我们的系统这个数据请求量很大的时候,频繁的IO和频繁的逻辑处理会导致硬盘和CPU资源的瓶颈出现.缓存的作用就是将这些来自不易的数据保存在内存中,当有其他线程或者客户端需要查询相同的数据资源时,

基于guava实现本地缓存

今天一个接口响应超时,然后我优化,用到了本地缓存. maven 依赖 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>27.1-jre</version> </dependency> LocalCache 本地缓存工具类 package com.itbac.common.cache;

分布式缓存系列之guava cache

  guava是google的一个开源java框架,其github地址是 https://github.com/google/guava.guava工程包含了若干被Google的 Java项目广泛依赖的核心库,例如:集合 [collections] .缓存 [caching] .原生类型支持 [primitives support] .并发库 [concurrency libraries] .通用注解 [common annotations] .字符串处理 [string processing]

缓存框架Guava Cache部分源码分析

在本地缓存中,最常用的就是OSCache和谷歌的Guava Cache.其中OSCache在07年就停止维护了,但它仍然被广泛的使用.谷歌的Guava Cache也是一个非常优秀的本地缓存,使用起来非常灵活,功能也十分强大,可以说是当前本地缓存中最优秀的缓存框架之一.之前我们分析了OSCache的部分源码,本篇就通过Guava Cache的部分源码,来分析一下Guava Cache的实现原理. 在分析之前,先弄清数据结构的使用.之前的文章提到,OSCache使用了一个扩展的HashTable,作

第二章 Google guava cache源码解析1--构建缓存器

1.guava cache 当下最常用最简单的本地缓存 线程安全的本地缓存 类似于ConcurrentHashMap(或者说成就是一个ConcurrentHashMap,只是在其上多添加了一些功能) 2.使用实例 具体在实际中使用的例子,去查看<第七章 企业项目开发--本地缓存guava cache>,下面只列出测试实例: import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit;

Java 高并发缓存与Guava Cache

一.背景 缓存是我们在开发中为了提高系统的性能,把经常的访问业务的数据第一次把处理结果先放到缓存中,第二次就不用在对相同的业务数据在重新处理一遍,这样就提高了系统的性能.缓存分好几种: (1)本地缓存. (2)数据库缓存. (3)分布式缓存. 分布式缓存比较常用的有memcached等,memcached是高性能的分布式内存缓存服务器,缓存业务处理结果,减少数据库访问次数和相同复杂逻辑处理的时间,以提高动态Web应用的速度. 提高可扩展性. 二.本地缓存在高并发下的问题以及解决 今天我们介绍的是

spring boot guava cache 缓存学习

http://blog.csdn.net/hy245120020/article/details/78065676 ************************************************************ spring boot guava cache 缓存学习 自定义key 自定义全局key过期时间,缓存个数 针对单个key自定义过期时间,缓存个数 引入依赖 <dependency> <groupId>org.springframework.boo