千家信息网

protobuf在java redis中怎么使用

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"protobuf在java redis中怎么使用",在日常操作中,相信很多人在protobuf在java redis中怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作
千家信息网最后更新 2026年11月01日protobuf在java redis中怎么使用

这篇文章主要介绍"protobuf在java redis中怎么使用",在日常操作中,相信很多人在protobuf在java redis中怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"protobuf在java redis中怎么使用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

下面首先介绍在idea 中 使用插件 根据.proto 文件生成 .java 文件

1. 首先在此module 中编写一个.proto 文件

2 pom 引用插件


  org.xolstice.maven.plugins  protobuf-maven-plugin  0.5.0            com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}        grpc-java          io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}                          compile            

点击 protobuf:complie 后

在项目target文件下 会生成一个 Java文件

将此文件复制到你项目源码目录即可使用。完毕后 pom 插件 注释掉。防止每次编译都会生成Java文件 导致项目报错。

2 关于spring Boot 如何集成redis 不再赘述 直接上关于RedisSerializer

类编写

我们现在要使用protobuf 作为redis 存储 序列化 工具。

故 需要编写一个RedisSerializer 实现类:

为了通用,故定义成泛型:


@Slf4jpublic class ProtobufRedisSerializer implements RedisSerializer {  private MessageLite messageLite;  private Class type;  public ProtobufRedisSerializer(T messageLite, Class type) {    this.messageLite = messageLite;    this.type = type;  }  @Override  public byte[] serialize(T t) throws SerializationException {    return t.toByteArray();  }  @Override  public T deserialize(byte[] bytes) throws SerializationException {    try {      if (Objects.isNull(bytes) || bytes.length == 0) {        return null;      }      MessageLite messageLite = this.messageLite.getParserForType().parseFrom(bytes);      return type.cast(messageLite);    } catch (InvalidProtocolBufferException e) {      log.error("ProtobufRedisSerializer error", e);    }    return null;  }}


核心代码如上:

附上RedisTenplateConfig


@Beanpublic RedisTemplate recordRedisTemplate(    RedisConnectionFactory connectionFactory) {  RedisTemplate recordRedisTemplate = new RedisTemplate<>();  recordRedisTemplate.setConnectionFactory(connectionFactory);  ProtobufRedisSerializer protobufRedisSerializer = new ProtobufRedisSerializer<>(      DynamicRecord.getDefaultInstance(), DynamicRecord.class);  recordRedisTemplate.setValueSerializer(protobufRedisSerializer);  recordRedisTemplate.setHashValueSerializer(protobufRedisSerializer);  StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();  recordRedisTemplate.setKeySerializer(stringRedisSerializer);  recordRedisTemplate.setHashKeySerializer(stringRedisSerializer);  return recordRedisTemplate;}


到此,关于"protobuf在java redis中怎么使用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

文件 学习 插件 项目 生成 更多 帮助 实用 接下来 代码 如上 工具 序列 文章 方法 核心 注释 源码 理论 目录 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 伟宏互联网科技 丰台科技园 互联网 佰商互联网科技有限公司 人人互联网科技是培训 山东吉时兔互联网科技有限公司 互联网 科技馆 北京大学互联网科技怎么样 互联网对科技的发展 宝灵互联网科技有限公司 和信科技工业互联网 想开互联网科技公司怎么样 深圳市罗太互联网科技有限公司 阿里互联网科技企业 银行科技岗属于互联网吗 黑云互联网科技有限公司 好易买互联网科技 绵阳真晨互联网科技有限公司 盐城市攀科互联网科技有限公司 互联网对科技影响 互联网科技企业文化 科技互联网龙头 为想互联网科技 华中科技有哪些互联网大佬 济南华为互联网科技产业总部基地 杭州壁岐互联网科技有限公司 广西互联网科技孵化中心 上海科技产业互联网平台 福建互联网展示科技馆设计 普陀区互联网教育科技管理办法 银川新华互联网科技学校是国营吗
0