SpringBoot集成Redis
2018-03-18 22:11
281 查看
1. SpringBoot集成Redis
Redis是一个缓存,消息代理和功能丰富的键值存储。 Spring Boot为Jedis客户端库和在它基础上的Spring Data Redis提供的抽象类提供了基本的自动配置。 有一个spring-boot-starter-data-redis'Starter'以方便的方式收集依赖关系。
2. 连接到Redis
可以像其他Spring Bean一样注入自动配置的RedisConnectionFactory,StringRedisTemplate或RedisTemplate实例。 默认情况下,实例将尝试使用localhost:6379连接到Redis服务器。
3. 配置Redis
在application.properties文件中加入Redis相关配置参数:## Redis 配置
## 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
## 连接超时时间(毫秒)
spring.redis.timeout=0配置RedisTemplate/**
* @Author: 落叶飞翔的蜗牛
* @Description:
* @Date: Create in 2018/2/27 0027 上午 0:15.
* @Version: 1.0.0
*/
@Configuration
@EnableCaching
public class RedisCacheConfig {
@Bean
public CacheManager cacheManager(RedisTemplate<?, ?> redisTemplate){
CacheManager cacheManager = new RedisCacheManager(redisTemplate);
return cacheManager;
}
@Bean
public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory){
RedisTemplate<String, String> redisTemplate = new RedisTemplate<String,String>();
redisTemplate.setConnectionFactory(factory);
// key序列化方式;(不然会出现乱码;),但是如果方法上有Long等非String类型的话,会报类型转换错误;
// 所以在没有自己定义key生成策略的时候,以下这个代码建议不要这么写,可以不配置或者自己实现ObjectRedisSerializer
// 或者JdkSerializationRedisSerializer序列化方式;
RedisSerializer<String> redisSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(redisSerializer);
redisTemplate.setHashKeySerializer(redisSerializer);
return redisTemplate;
}
}PS:需要注意的是:
RedisT
4000
emplate 操作redis时发现存储在redis中的key值,前面还多出了许多类似\xac\xed\x00\x05t\x00\x04,这是因为spring-data-redis的RedisTemplate<K, V>模板类在操作redis时默认使用JdkSerializationRedisSerializer来进行序列化,如下:if (defaultSerializer == null) {
defaultSerializer = new JdkSerializationRedisSerializer(classLoader != null ? classLoader : this.getClass().getClassLoader());
}解决方案如下:
4. SpringBoot集成Redis Demo地址
Demo地址:https://github.com/PerseveranceForever/springboot_redis_demo.git
以上demo是SpringBoot整合mybatis+redis。通过从mysql中读取数据,存入redis。
Redis是一个缓存,消息代理和功能丰富的键值存储。 Spring Boot为Jedis客户端库和在它基础上的Spring Data Redis提供的抽象类提供了基本的自动配置。 有一个spring-boot-starter-data-redis'Starter'以方便的方式收集依赖关系。
2. 连接到Redis
可以像其他Spring Bean一样注入自动配置的RedisConnectionFactory,StringRedisTemplate或RedisTemplate实例。 默认情况下,实例将尝试使用localhost:6379连接到Redis服务器。
3. 配置Redis
在application.properties文件中加入Redis相关配置参数:## Redis 配置
## 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
## 连接超时时间(毫秒)
spring.redis.timeout=0配置RedisTemplate/**
* @Author: 落叶飞翔的蜗牛
* @Description:
* @Date: Create in 2018/2/27 0027 上午 0:15.
* @Version: 1.0.0
*/
@Configuration
@EnableCaching
public class RedisCacheConfig {
@Bean
public CacheManager cacheManager(RedisTemplate<?, ?> redisTemplate){
CacheManager cacheManager = new RedisCacheManager(redisTemplate);
return cacheManager;
}
@Bean
public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory){
RedisTemplate<String, String> redisTemplate = new RedisTemplate<String,String>();
redisTemplate.setConnectionFactory(factory);
// key序列化方式;(不然会出现乱码;),但是如果方法上有Long等非String类型的话,会报类型转换错误;
// 所以在没有自己定义key生成策略的时候,以下这个代码建议不要这么写,可以不配置或者自己实现ObjectRedisSerializer
// 或者JdkSerializationRedisSerializer序列化方式;
RedisSerializer<String> redisSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(redisSerializer);
redisTemplate.setHashKeySerializer(redisSerializer);
return redisTemplate;
}
}PS:需要注意的是:
RedisT
4000
emplate 操作redis时发现存储在redis中的key值,前面还多出了许多类似\xac\xed\x00\x05t\x00\x04,这是因为spring-data-redis的RedisTemplate<K, V>模板类在操作redis时默认使用JdkSerializationRedisSerializer来进行序列化,如下:if (defaultSerializer == null) {
defaultSerializer = new JdkSerializationRedisSerializer(classLoader != null ? classLoader : this.getClass().getClassLoader());
}解决方案如下:
4. SpringBoot集成Redis Demo地址
Demo地址:https://github.com/PerseveranceForever/springboot_redis_demo.git
以上demo是SpringBoot整合mybatis+redis。通过从mysql中读取数据,存入redis。
相关文章推荐
- SpringBoot实践之---集成Redis
- springboot集成redis详解
- 35. Spring Boot集成Redis实现缓存机制【从零开始学Spring Boot】
- SpringBoot集成Redis实现缓存处理(Spring AOP技术)
- spring-boot-starter-redis 集成
- SpringBoot 入门教程:集成mybatis,redis
- 【springBoot】springBoot集成redis的key,value序列化的相关问题
- SpringBoot集成Redis来实现缓存技术方案
- spring boot 集成redis实现分布式session共享
- Springboot2.X集成redis集群(Lettuce)连接的方法
- 排忧解难之使用Spring Boot与Redis集成报错 NoClassDefFoundError...RedisConnectionFactory
- Spring boot集成redis及缓存操作失败的异常处理
- spring boot:集成缓存redis
- Spring boot集成Redis实现sessions共享时,sessions过期时间问题分析
- SpringBoot 入门教程:集成mybatis,redis
- 使用SpringBoot搭建小型项目,集成mybatis,redis,swagger2,并部署在外部容器中。
- (35)Spring Boot集成Redis实现缓存机制【从零开始学Spring Boot】
- Spring Boot(十一)Redis集成从Docker安装到分布式Session共享
- centos7环境下搭建redis及springboot连接集成
- 在SpringBoot中集成Redis