文档章节

使用Spring Data Redis实现缓存遇到的一些问题

scott0923
 scott0923
发布于 2016/04/14 23:44
字数 435
阅读 39
收藏 0

最近项目由于部分功能数据量比较大,加载比较缓慢,为了加快加载速度使用到了Redis,主要是用通过Spring Data Redis来实现声明式缓存,Spring配置文件需要配置如下几项基本的

<bean id="redisConnectionFactory"
		class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
		<property name="hostName" value="127.0.0.1" />
		<property name="port" value="6379" />
		<property name="usePool" value="true" />
	</bean>
	<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
		<property name="connectionFactory" ref="redisConnectionFactory" />
	</bean>
	<bean id="cacheManagerRedis" class="org.springframework.data.redis.cache.RedisCacheManager">
		<constructor-arg ref="redisTemplate"></constructor-arg>
	</bean>

	<cache:annotation-driven cache-manager="cacheManagerRedis" />

上面的配置已经和Spring集成了就,我们采用声明式注解的方式@Cacheable的方式来显示的注明需要缓存,@Cacheab里面有几个可以配置的项value为cacheNames,key为缓存的键,以前用过EHChche的原因,错误的认为如果不写key就会按照方法名和方法参数来作为缓存的键,但是实验的结果却完全不一样,如果不指定一个key,也不自己实现一个keyGenerator的话那么默认就是一个空的key,这样的现象就是当你缓存第一个的时候成功,以后再缓存的话就会获取到第一个缓存的数据,因为其实缓存的key都是空的,所以要么实现一个自己的生成键的策略要么指定一个key,key的标注方式可SpEL表达式,如下:

这样就可以动态生成我们自定义的key,需注意key的唯一。目前数据同步我们是根据当缓存的数据发生CUD操作时就情况该缓存,使用@CacheEvict注解,value即为对应缓存的key。

© 著作权归作者所有

共有 人打赏支持
scott0923
粉丝 2
博文 23
码字总数 16579
作品 0
顺义
程序员
私信 提问
技术专题讨论:如何对 JPA 或者 MyBatis 进行技术选型

在我们平时的项目中,大家都知道可以使用 JPA 或者 Mybatis 作为 ORM 层。对 JPA 和 Mybatis 如何进行技术选型? 下面看看大精华总结如下: 最佳回答 首先表达个人观点,JPA必然是首选的。 ...

后海
06/27
0
0
Spring Data Redis与Jedis的选择(转)

说明:内容可能有点旧,需要在业务上做权衡。 Redis的客户端有两种实现方式,一是可以直接调用Jedis来实现,二是可以使用Spring Data Redis,通过Spring的封装来调用。应该使用哪一个呢?基于...

easonjim
2017/11/08
0
0
Spring集成Redis方案(spring-data-redis)(基于Jedis的单机模式)(待实践)

说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点。并且会与一些低版本的Spring有冲突,要看官方文档...

easonjim
2017/10/05
0
0
是大三的我对大二的学弟要求高了吗?

目前我大三,学校四年制,在学校的一个校企合作公司实习。 先说一下我这三年都干了什么,然后再说我遇到的问题吧。 写着写着发现写得太长了,就单独提取出来放到另外一篇文章了:https://www...

侯坤林
04/25
5.6K
46
Elasticsearch

本地搭建了ELK中的EL环境,通过logstash采集日志到es中,然后springboot工程与elasticsearch集成,采用springdata-elasticsearch, 三种查询方式: 1. 使用springdata-elasticsearch提供的...

aybaylyn
2016/12/22
159
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
3
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
6
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
6
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
5
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部