文档章节

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

scott0923
 scott0923
发布于 2016/04/14 23:44
字数 435
阅读 38
收藏 0
点赞 1
评论 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
博文 21
码字总数 16182
作品 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
使用Spring访问Mongodb的方法大全——Spring Data MongoDB查询指南

1.概述 Spring Data MongoDB 是Spring框架访问mongodb的神器,借助它可以非常方便的读写mongo库。本文介绍使用Spring Data MongoDB来访问mongodb数据库的几种方法: 使用Query和Criteria类 ...

xiaomin0322
06/28
0
0
spring data mongo如何查询给定多边形内所有坐标点?

使用spring data mongodb 如何查询给定多边形内所有坐标点?能否给个使用示例看看?

K哥
04/12
0
0
分布式轻量级框架 设计&实现 1 - 初步想法&技术选型

技术选型 项目用maven管理,使用checkstyle,findbugs,cobertura等插件生成项目报告。 使用Spring框架,采用注解的方式,尽量零配置。 统一化持久层模块。Repository分为JPA,MongoDB,HBa...

亮_dangdang
2013/10/12
0
1
redis(三)与spring整合

一、 AVA操作redis通常使用的是Jedis,通过java代码来操作redis的数据存储读取等操作,用过的人应该知道,Jedis客户端已经足够简单和轻量级了,但是呢,在此同时,Spring也为Redis提供了支持...

废柴
07/11
0
0
Java for Web学习笔记(一二一):搜索(3)JPA的动态条件搜索(下)

例子的具体实现 仓库的实现 使用spring data,增加自定义接口SearchableRepository,具体如下: public interface PersonRepository extends CrudRepository, SearchableRepository{} publi......

flowingflying
04/15
0
0
使用Spring Data Redis操作Redis(单机版)

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

easonjim
2017/11/08
0
0
Spring Boot使用Spring Data Redis操作Redis(单机/集群)

说明:Spring Boot简化了Spring Data Redis的引入,只要引入spring-boot-starter-data-redis之后会自动下载相应的Spring Data Redis和Jedis客户端,可以减少版本这块的冲突,当然,如果要引入...

easonjim
2017/11/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

大数据教程(2.13):keepalived+nginx(多主多活)高可用集群搭建教程【自动化脚本】

上一章节博主为大家介绍了目前大型互联网项目的keepalived+nginx(主备)高可用系统架构体系,相信大家应该看了博主的文章对keepalived/nginx技术已经有一定的了解,在本节博主将为大家分享k...

em_aaron
6分钟前
0
0
Git 2.18版本发布:支持Git协议v2,提升性能

在最新的官方 Git 客户端正式版2.18中添加了对 Git wire 协议 v2 的支持,并引入了一些性能与 UI 改进的新特性。在 Git 的核心团队成员 Brandon Williams 公开宣布这一消息前几周,Git 协议 ...

六库科技
10分钟前
0
0
Java8新特性之接口

在JDK8以前,我们定义接口类中,方法都是抽象的,并且不能存在静态方法。所有的方法命名规则基本上都是 public [返回类型] [方法名](参数params) throws [异常类型] {}。 JDK8为接口的定义带...

developlee的潇洒人生
48分钟前
0
0
aop + annotation 实现统一日志记录

aop + annotation 实现统一日志记录 在开发中,我们可能需要记录异常日志。由于异常比较分散,每个 service 方法都可能发生异常,如果我们都去做处理,会出现很多重复编码,也不好维护。这种...

长安一梦
59分钟前
2
0
将博客搬至CSDN

AHUSKY
今天
1
0
Python web框架Django学习(1)

1.Django简介 (1)Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。Django是一个开放源代码的Web应用框架,由Python写成。 (2...

十年磨一剑3344
今天
0
0
Databook-数据之书

Databook-数据之书 用于数据分析的Jupyter Notebooks。 不需购买服务器,快速开始自己的数据分析过程。 源码:https://github.com/openthings/databook 作者:openthings,https://github.co...

openthings
今天
7
0
Python PIPEs

https://www.python-course.eu/pipes.php https://www.tutorialspoint.com/python/os_pipe.htm

zungyiu
今天
1
0
gRPC学习笔记

gRPC编程流程 1. proto文件定义 proto文件用于定义需要通过gRPC生成的接口,可以理解为接口定义文档 2. 通过构建工具生成服务基类代码-Maven或Gradle 3. 服务端开发 服务端实现类须实现通过构...

OSC_fly
今天
0
0
Docker Mac (三) Dockerfile 及命令

Dockerfile 最近学习docker的时候,遇到一件怪事,关于docker镜像可能会被破坏,还不知道它会有此措施 所以需要了解构建Dockerfile的正确方法 Dockerfile是由一系列命令和参数构成的脚本,这些命...

___大侠
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部