spring cache redis 使用
最近在用redis 做缓存开发,觉得自己写接口很麻烦, 看到spring 提供了 redis 缓存, 记录之
1. 使用的是最近的spring 包 4.1.6.RELEASE, spring data redis 1.5.0.RELEASE 和jedis client 2.6.2, 使用maven 构建
2, redis 安装就不说了, 很简单。 下面是简单的配置文件, redis 分片和 池 的使用就自行定义了
<cache:annotation-driven cache-manager="cacheManager"/> <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="hostName" value="${jedis.host}" /> <property name="port" value="${jedis.port}"/> <property name="usePool" value="true" /> </bean> <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"> <property name="connectionFactory" ref="jedisConnectionFactory" /> </bean> <bean id="cacheManager" class="org.springframework.data.redis.cache.RedisCacheManager"> <constructor-arg index="0" ref="redisTemplate" /> </bean>
两个简单的类, bean 和 service
public class CacheUser implements Serializable{ private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
@Service public class UserService { private CacheUser user; @Cacheable(value="cacheUserList") public List<CacheUser> list() { List<CacheUser> list=new ArrayList<>(); for (int i = 0; i < 10; i++) { user=new CacheUser(); user.setUsername("username"+i); user.setPassword("password"+i); list.add(user); } System.out.println("==get from java=="+System.nanoTime()); return list; } }
测试junit 4
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations="classpath:spring-cache.xml") public class CacheTest { @Inject private UserService us; @Test public void test(){ System.out.println(us.list()); System.out.println(us.list()); } }
可以看到输出一次 == get from jave == 和两次列表, 说明数据已存储到redis .
附 spring cache 注解的使用
spring cache 有两个主要注解 @Cacheable (负责将方法的返回值加入到缓存中), @CacheEvict(清除缓存)
@Cacheable :
value:缓存位置名称,不能为空,如果使用EHCache,就是ehcache.xml中声明的cache的name
key:缓存的key,默认为空,既表示使用方法的参数类型及参数值作为key,支持SpEL
condition:触发条件,只有满足条件的情况才会加入缓存,默认为空,既表示全部都加入缓存,支持SpEL
@CacheEvict:
value:缓存位置名称,不能为空,同上
key:缓存的key,默认为空,同上
condition:触发条件,只有满足条件的情况才会清除缓存,默认为空,支持SpEL
allEntries:true表示清除value中的全部缓存,默认为false
相关推荐
springboot 使用spring cache缓存 和 使用fastjson配置redis系列化,springboot 使用spring cache缓存 和 使用fastjson配置redis系列化,springboot 使用spring cache缓存 和 使用fastjson配置redis系列化,springboot ...
redis主从配置流程,关键配置项,哨兵模式实现高可用。并整合spring cache功能。快速方便
SpringCache与redis集成,优雅的缓存解决方案.docx
之前整合springcache+redis的时候到网上搜了很多代码方案,但是注解都不起作用,搞了很长时间,也是很郁闷。所以,把成果分享一下,避免更多人踩坑,哈哈
springboot_springcache_redis入门实例,共同学习进步
redis-cluster完整项目,下载导入eclipse即可
SpringCache整合Redis简单练习
redis与springcache集成,对应的文章可以在我的csdn博客中找到
SpringBoot2.0整合SpringCache和Redis 1 1. SpringBoot对应(自带)RedisClient是不同的 1 2. 实战 1 2.1. maven配置 1 2.2. yml配置 1 2.3. RedisConfig配置 1 2.4. RedisController 2 3. Spring缓存注解@...
主要介绍了Spring Cache使用RedisCache案例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
本文是springboot 使用spring cache缓存 和 缓存数据落地到redis的研究笔记,为方便下载查看,特意分享了springboot 使用spring cache缓存 和 缓存数据落地到redis.pdf的文件。希望搭建对springboot 使用spring ...
前言:上一篇关于 Spring Cache 的文章我们较为系统的介绍了 Spring Cache,而 Redis 在实际项目工程中也有较为广泛的应用。这篇文章就
博客http://blog.csdn.net/poorcoder_/article/details/59541710的代码。主要描述spring通过注解整合redis用作缓存的实例。
spring boot cache 整合 redis demo (内包含 redis windows 安装包,和redis desktop 桌面 管理工具)
SpringCache+Redis实现高可用缓存解决方案.docx
主要介绍了Spring cache整合redis代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了Spring Cache整合Redis实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了Spring Cache手动清理Redis缓存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
使用spring集成redis基于注解的方式来实现数据的缓存
主要介绍了spring boot+spring cache实现两级缓存(redis+caffeine),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧