spring使用redisTemplate
连接工厂:spring data redis 2.0中提供了两种redis客户端实现
- LettuceConnectionFactory
- JedisConnectionFactory
区别:
Lettuce基于netty,是线程安全的,且性能较好。
Jedis在实现上是直接连接的redis serve,多线程环境下是非线程安全的。
配置:
默认为luttuce,如果想使用Jedis 除了在config中配置外,还需在POM中移除对Lettuce的依赖,并引入Jedis所需的包


其他的配置项如host、port等建议配置在yml或者properties文件中。

使用redis访问模板
Spring data redis 提供了两个访问redis的模板
- RedisTemplate
- StringRedisTemplate
其中StringRedisTemplate为redisTemplate的扩展,只关心String类型的Key、value,适合于key于value均为String类型的键值对,而RedisTemplate可以持久化各种类型.
配置Template:
String boot默认已配置了上述两种模板,源码如下,使用时直接注入即可.

当然若不满足于默认的配置,比如想设置不同的序列化方式,key、value的序列化方式等。可以在config文件中覆盖掉即可:
如下,配置了key与value的序列化方式。

String data提供了多个序列化器,包括:
- GenericToStringSerializer:使用Spring转换服务进行序列化
- JdkSerializationRedisSerializer:使用JDK序列化
- Jackson2JsonRedisSerializer:使用jackson2将对象序列化
- OxmSerializer:用于XML序列化
- StringRedisSerializer:序列化String类型的key与value
API与DEMO:

Demo:
操作简单值(value):

操作List:

操作哈希(hash):

操作zset与set:
略(基本都是redis各个命令的实现)
spring使用redisTemplate的更多相关文章
- spring中redistemplate不能用通配符keys查出相应Key的问题
有个业务中需要删除某个前缀的所有Redis缓存,于是用RedisTemplate的keys方法先查出所有合适的key,再遍历删除.但是在keys(patten+"*")时每次取出的 ...
- spring 整合 redis,以及spring的RedisTemplate如何使用
需要的jar包 spring-data-redis-1.6.2.RELEASE.jar jedis-2.7.2.jar(依赖 commons-pool2-2.3.jar) commons-pool2- ...
- Spring 集成 redistemplate
jar包 <version.clients.jedis>2.7.2</version.clients.jedis><version.data.redis>1.6.2 ...
- Spring 使用RedisTemplate操作Redis
首先添加依赖: <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> < ...
- 基于spring的redisTemplate的缓存工具类
pom.xml文件添加 <!-- config redis data and client jar --><dependency> <groupId>org.spr ...
- spring boot定制Jackson ObjectMapper,为什么不生效
先说结论: 项目中定制了spring 的redisTemplate,而这个template没有使用我自定义的Jackson ObjectMapper.所以不生效. 下面是详细过程: 起因是spring ...
- Spring Data Redis 让 NoSQL 快如闪电(2)
[编者按]本文作者为 Xinyu Liu,文章的第一部分重点概述了 Redis 方方面面的特性.在第二部分,将介绍详细的用例.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 把 Redis ...
- 使用方法拦截机制在不修改原逻辑基础上为 spring MVC 工程添加 Redis 缓存
首先,相关文件:链接: https://pan.baidu.com/s/1H-D2M4RfXWnKzNLmsbqiQQ 密码: 5dzk 文件说明: redis-2.4.5-win32-win64.z ...
- redisTemplate写哈希表遇到的坑
本文系原创,如有转载,请注明出处 在使用spring的redisTemplate进行redis哈希表的相关操作时,遇到了下面比较奇怪的情况: 1.删掉哈希表所属的key之后,重新get这个key的值, ...
随机推荐
- 几个常用的url生成二维码的接口
找到了几个URL生成的接口,速度上可能会有差别,可试验后选用,我用过第一个,分享: <!doctype html> <html lang="en"> < ...
- mysql字符串的隐式转换导致查询异常
如果mysql某个字段(name)类型为varchar, 加了索引,在执行where查询的时候,传入了int的值,这样就会全表扫描,把每一条的值都转换成int(会出现"中国"-&g ...
- rust ownership 系统
### 对象销毁规则 未被使用的函数返回值 被let绑定的值, 在函数末尾销毁,除非被moved ``` let v = obj::new("a"); other_fun(v); ...
- Mex混合编程专题二:MEX Hello Word
VS2010中写mex入门级工程代码 接着上一篇文章的工程继续,如下代码: #include "stdafx.h" #include "mextest.h" # ...
- 关于对H264码流的TS的封装的相关代码实现
1 写在开始之前 在前段时间有分享一个H264封装ps流到相关文章的,这次和大家分享下将H264封装成TS流到相关实现,其实也是工作工作需要.依照上篇一样,分段说明每个数据头的封装情况,当然,一样也会 ...
- Oracle12c多租户如何连接到CDB或PDB、CDB与PDB容器切换
Oracle 数据库 12 c 多租户选项允许单个容器数据库 (CDB) 来承载多个单独的可插拔数据库 (PDB).那么我们如何连接到容器数据库 (CDB) 和可插拔数据库 (PDB). 1. V$S ...
- 类方法,实例方法,静态方法,@property的应用
class test(object): h = 'hello' w = 'world' def demo(self): print("demo") def test_class(s ...
- 第二课 go语言的结构
1 go 语言结构 package main import "fmt" func main() { /* 这是我的第一个简单的程序 */ fmt.Println("Hel ...
- pythoon_interview_redit
easy/intermediate What are Python decorators and how would you use them?How would you setup many pro ...
- Project Server调用PSI关闭任务以进行更新锁定任务
/// <summary> /// 锁定和解锁项目任务 /// </summary> /// <param name="projectuid"> ...