Springboot整合redis自定义RedisTemplate
程序员文章站
2022-04-30 16:37:35
...
前言:
由于使用springboot整合redis操作对象时,会导致对象乱码不可读。作为数据强迫症的我自然是受不了这样现象,虽然不影响数据安全但是还是开始了折腾。
原因:
因为redis默认序列化时会使用jdk序列化器。
解决方案:
配置自定义序列化器取代默认。
注意:处于性能考虑,使用的是fastJson来做对象序列化,所以需要添加fastJson依赖。我使用的是1.2.45版本。
配置RedisConfig类,代码:
package com.xhe.demo.config;
import com.alibaba.fastjson.support.spring.FastJsonRedisSerializer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.*;
import org.springframework.data.redis.serializer.StringRedisSerializer;
/**
* @Auther: Xhe
* @Date: 2018/6/9 23:03
* @Description: redis配置
*/
@Configuration
public class RedisConfig {
@Autowired
private RedisConnectionFactory factory;
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new FastJsonRedisSerializer(Object.class));
redisTemplate.setConnectionFactory(factory);
return redisTemplate;
}
@Bean
public HashOperations<String, String, Object> hashOperations(RedisTemplate<String, Object> redisTemplate) {
return redisTemplate.opsForHash();
}
@Bean
public ValueOperations<String, String> valueOperations(RedisTemplate<String, String> redisTemplate) {
return redisTemplate.opsForValue();
}
@Bean
public ListOperations<String, Object> listOperations(RedisTemplate<String, Object> redisTemplate) {
return redisTemplate.opsForList();
}
@Bean
public SetOperations<String, Object> setOperations(RedisTemplate<String, Object> redisTemplate) {
return redisTemplate.opsForSet();
}
@Bean
public ZSetOperations<String, Object> zSetOperations(RedisTemplate<String, Object> redisTemplate) {
return redisTemplate.opsForZSet();
}
}
上一篇: 卷积神经网络的参数计算
推荐阅读
-
SpringBoot缓存详解并整合Redis架构
-
完整SpringBoot Cache整合redis缓存(二)
-
SpringBoot整合Redis、ApachSolr和SpringSession的示例
-
SpringBoot 整合Redis 数据库的方法
-
SpringBoot 2.x 开发案例之 Shiro 整合 Redis
-
Springboot整合redis步骤
-
Redis集群整合到springboot框架
-
【SpringBoot】SpringBoot整合EasyPoi自定义字典导出Excel
-
SpringBoot整合Redis、ApachSolr和SpringSession的示例
-
SpringBoot整合SpringMVC之自定义JSON序列化器和反序列化器