当前位置: 首页 > news >正文

springboot RedisTemplate支持多个序列化方式

前提纪要:因为业务变动,需要在原先只支持protobuf的前提序列化的前提下,新增正常的序列化读取数据所以在原先的基础上进行优化。文章用于记忆。
话不多说直接上代码

@Configuration
@AutoConfigureAfter(RedisAutoConfiguration.class)
@Import({RedisAutoConfiguration.class})
@Slf4j
public class ProtobufRedisTemplateConfig  {private final LettuceConnectionFactory lettuceConnectionFactory;public ProtobufRedisTemplateConfig (LettuceConnectionFactory lettuceConnectionFactory) {this.lettuceConnectionFactory = lettuceConnectionFactory;}@Beanpublic RedisTemplate<Object, Object> protobufRedisTemplate() {RedisTemplate<Object, Object> template = new RedisTemplate<>();template.setConnectionFactory(lettuceConnectionFactory);RedisSerializer<byte[]> byteRedisSerializer = new RedisSerializer<byte[]>() {@Overridepublic byte[] serialize(byte[] bytes) throws SerializationException {return new byte[0];}@Overridepublic byte[] deserialize(byte[] bytes) {return bytes;}};template.setKeySerializer(byteRedisSerializer);template.setValueSerializer(byteRedisSerializer);template.setHashKeySerializer(byteRedisSerializer);template.setHashValueSerializer(byteRedisSerializer);template.afterPropertiesSet();log.warn("the Lettuce-protobuf starting success, date is -->" + new Date());return template;}@Beanpublic RedisTemplate<String, Object> jsonRedisTemplate() {RedisTemplate redisTemplate = new RedisTemplate<>();redisTemplate.setConnectionFactory(lettuceConnectionFactory);// 使用Jackson2JsonRedisSerializer 替换默认的JDKSerializationRedisSerializer 来序列化和反序列化redis 的value值Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);redisTemplate.setKeySerializer(new StringRedisSerializer());redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);redisTemplate.setHashKeySerializer(new StringRedisSerializer());// hash的value序列化方式采用jacksonredisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);redisTemplate.afterPropertiesSet();return redisTemplate;}
}

使用

    @Autowired@Qualifier("protobufRedisTemplate")private RedisTemplate<Object, Object> protobufRedisTemplate;@Autowired@Qualifier("jsonRedisTemplate")private RedisTemplate<String, Object> redisTemplate;
http://www.lryc.cn/news/470653.html

相关文章:

  • 开源项目-拍卖管理系统
  • Python小游戏14——雷霆战机
  • 81页PPT | 企业数字化底座与数字化转型方案
  • R语言笔记(五):Apply函数
  • Newsqueak:在 Go 之前的一门语言
  • 世界酒中国菜与另可数字平台达成战略合作
  • ElasticSearch基础篇——概念讲解,部署搭建,使用RestClient操作索引库和文档数据
  • k8s 二进制部署安装(一)
  • 115页PPT华为管理变革:制度创新与文化塑造的核心实践
  • ubuntu限制网速方法
  • 三品PLM研发管理系统:企业产品研发过程的得力助手
  • PyCharm 添加不了 Anaconda 环境
  • Leetcode 二叉树的右视图
  • console.log(“res.data = “ + JSON.stringify(res.data));
  • node和npm
  • 通过四元数求机器人本体坐标旋转量
  • CodeQL学习笔记(2)-QL语法(递归)
  • Video-XL:面向小时级视频理解的超长视觉语言模型
  • postgresql subtransaction以及他的效能
  • 新手逆向实战三部曲之二——通过更改关键跳注册软件(爆破)
  • 高级SQL技巧:提升数据查询与分析能力的关键
  • IntelliJ IDEA 安装 Maven 工具并更换阿里源
  • MIT 6.824 Lab1记录
  • C语言数据结构学习:[汇总]
  • unity游戏开发之塔防游戏
  • 前端项目接入sqlite轻量级数据库sql.js指南
  • 模拟退火算法(Simulated Annealing)详细解读
  • (二十一)、Docker 部署 Minikube 使用可视化管理工具 Kuboard
  • 代码编辑组件
  • 裴蜀定理与欧几里得算法——蓝桥杯真题中的应用