成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

protobuf在javaredis中怎么使用

這篇文章主要介紹“protobuf在java redis中怎么使用”,在日常操作中,相信很多人在protobuf在java redis中怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”protobuf在java redis中怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比萊西網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式萊西網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋萊西地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。

下面首先介紹在idea 中 使用插件 根據(jù).proto 文件生成 .java 文件

1. 首先在此module 中編寫一個.proto 文件

protobuf在java redis中怎么使用

2 pom 引用插件

<plugin>  <groupId>org.xolstice.maven.plugins</groupId>  <artifactId>protobuf-maven-plugin</artifactId>  <version>0.5.0</version>  <configuration>    <protocArtifact>      com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}    </protocArtifact>    <pluginId>grpc-java</pluginId>    <pluginArtifact>      io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}    </pluginArtifact>  </configuration>  <executions>    <execution>      <goals>        <goal>compile</goal>      </goals>    </execution>  </executions></plugin>
   

 

protobuf在java redis中怎么使用

點擊 protobuf:complie 后

在項目target文件下 會生成一個 Java文件

protobuf在java redis中怎么使用

將此文件復(fù)制到你項目源碼目錄即可使用。完畢后 pom 插件 注釋掉。防止每次編譯都會生成Java文件 導(dǎo)致項目報錯。

2 關(guān)于spring Boot 如何集成redis 不再贅述 直接上關(guān)于RedisSerializer

類編寫

我們現(xiàn)在要使用protobuf 作為redis 存儲 序列化 工具。

故 需要編寫一個RedisSerializer 實現(xiàn)類:

為了通用,故定義成泛型:

@Slf4jpublic class ProtobufRedisSerializer<T extends MessageLite> implements RedisSerializer<T> {  private MessageLite messageLite;  private Class<T> type;  public ProtobufRedisSerializer(T messageLite, Class<T> 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<String, DynamicRecord> recordRedisTemplate(    RedisConnectionFactory connectionFactory) {  RedisTemplate<String, DynamicRecord> recordRedisTemplate = new RedisTemplate<>();  recordRedisTemplate.setConnectionFactory(connectionFactory);  ProtobufRedisSerializer<DynamicRecord> 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;}
   

 

到此,關(guān)于“protobuf在java redis中怎么使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

本文名稱:protobuf在javaredis中怎么使用
本文地址:http://jinyejixie.com/article36/psicsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、響應(yīng)式網(wǎng)站、營銷型網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、移動網(wǎng)站建設(shè)網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
鹤峰县| 深圳市| 竹北市| 孝感市| 山东省| 逊克县| 江北区| 罗城| 遂昌县| 胶州市| 凤阳县| 鸡西市| 洪洞县| 安新县| 太白县| 广饶县| 盐山县| 隆昌县| 海阳市| 抚宁县| 株洲县| 漠河县| 科尔| 闽侯县| 伊宁县| 秭归县| 仁布县| 乾安县| 南溪县| 西和县| 休宁县| 梁山县| 华蓥市| 墨竹工卡县| 定远县| 广宁县| 射洪县| 竹北市| 琼中| 彭州市| 简阳市|