一、 首先RedisTemplate是什么?
RedisTemplate简单来说就是Jedis的封装,
在没有RedisTemplate之前,我们需要为每一个Redis连接做这些事情:
1)Redis连接池
2)Redis服务器
3)写Redis操作语句
4)Redis连接销毁
问题的关键点在于我们只对3感兴趣啊,对于每一个连接1,2,4都要做,就很烦
有了RedisTemplate之后以上通通交给了RedisTemplate去做,我们只需要简单配置一下即可,然后专心于3即可
相关Jedis配置与示例:https://blog.csdn.net/fenghuoliuxing990124/article/details/85108967
回到RedisTemplate,我们看看Springboot是如何管理RedisTemplate的:
二、在Springboot中的RedisTemplate的依赖:
可以看到SpringBoot中的denpendencies中是自带了redis的
所以在项目中RedisTemplate是可以直接使用的,所以我们简单注入一个即可使用
三、对应的配置
但是光是注入对象不够,还得做基本的配置:
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=127.0.0.1
##Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=
#连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.pool.min-idle=0
# 连接超时时间(毫秒)0表示没有超时时间
spring.redis.timeout=0
配置完成了,也有RedisTemplate对象了,接下来就是如何操作的问题了
四、配套方法
RedisTemplate提供了下面几种方法供我们去操作对象
redisTemplate.opsForValue();//操作字符串
redisTemplate.opsForHash();//操作hash
redisTemplate.opsForList();//操作list
redisTemplate.opsForSet();//操作set
redisTemplate.opsForZSet();//操作有序set
这里以操作字符串为例介绍redisTemplate的常用方法
//获取Redis中的key指向的value
//设置
redisTemplate.opsForValue().set("redis:emample:1",1);
//取
redisTemplate.opsForValue().get("redis:example:1");
如果想要查看对应的操作方法
查看所有的方法
可以发现RedisTemplate与我们之前了解的Redis有些许不同,
比如只有increment没有decrement,那如何操作呢?
很简单看下面的参数Long,变为负数即可
五、补充:Redis常见的坑
假如Redis用作缓存数据库,且不在本地,就要涉及到序列化,而序列化中有很多常见的坑,如下:
Redis反序列化错误:https://blog.csdn.net/fenghuoliuxing990124/article/details/85105214