SpringBoot2.0實戰(21)整合Redis之初體驗Lettuce

SpringBoot2.0實戰(21)整合Redis之初體驗Lettuce

相關知識

Redis 簡介

Redis 是一個開源的,基於內存中的,高性能的數據存儲系統,它可以用作數據庫、緩存和消息中間件。

Redis 支持多種類型的數據結構,如:string、hashes、lists、sets、sortedSets等。

Redis 內置了複製(replication)、LUA腳本(Lua>

Redis 可以通過哨兵(Sentinel)以及集群(Cluster)提供高可用性

Lettuce 和 Jedis

Lettuce 和 Jedis 都是連接 Redis Server 的客戶端程序,

SpringBoot2.x 之前默認使用 Jedis 作為與 Redis 進行交互的組件,SpringBoot2.x 則換成了 Lettuce(生菜)。

Jedis 在實現上是直連 redis server,多線程環境下非線程安全,除非使用連接池,為每個 Jedis 實例增加物理連接。

Lettuce 基於 Netty 的連接實例(StatefulRedisConnection),可以在多個線程間併發訪問,且線程安全,滿足多線程環境下的併發訪問,

同時它是可伸縮的設計,一個連接實例不夠的情況也可以按需增加連接實例。

目標

整合 Redis 實現對 redis 的增刪查改

準備工作

安裝 Redis

介紹使用 Docker 方式安裝,Docker 安裝可以參考 https://blog.csdn.net/gongm24/article/details/86357866

下載鏡像

<code>docker pull redis/<code>

運行鏡像

<code>docker run --name redis \\
-p 6379:6379 \\
-itd redis --requirepass "123456"/<code>

檢查是否安裝成功,使用客戶端登入容器,執行 redis-cli -a 123456 命令,進行連接

<code>docker exec -it redis /bin/bash/<code>

操作步驟

添加依賴

引入 Spring Boot Starter 父工程

SpringBoot2.0實戰(21)整合Redis之初體驗Lettuce

添加 spring-boot-starter-data-redis 的依賴

SpringBoot2.0實戰(21)整合Redis之初體驗Lettuce

添加後的整體依賴如下

SpringBoot2.0實戰(21)整合Redis之初體驗Lettuce

配置

SpringBoot2.0實戰(21)整合Redis之初體驗Lettuce

驗證

Spring 提供了 RedisTemplate 作為操作 Redis 的工具類,可以通過 Spring 進行自動加載。StringRedisTemplate 是 RedisTemplate 基於 String 類型的實現。

RedisTemplate

提供了以下方法分別用於對 Redis 的各個數據結構進行操作。

  • opsForValue: 對應 String(字符串)
  • opsForZSet: 對應 ZSet(有序集合)
  • opsForHash: 對應 Hash(哈希)
  • opsForList: 對應 List(列表)
  • opsForSet: 對應 Set(集合)
  • opsForGeo: 對應 GEO(地理位置)
  • SpringBoot2.0實戰(21)整合Redis之初體驗Lettuce

    編碼(使用自定義序列化)

    定義對象

    @NoArgsConstructor 一定要記得加,反序列化時會調用無參構造函數進行對象實例化。

    SpringBoot2.0實戰(21)整合Redis之初體驗Lettuce

    註冊自定義 RedisTemplate

    值的序列化選擇了 jackson

    SpringBoot2.0實戰(21)整合Redis之初體驗Lettuce

    驗證

    SpringBoot2.0實戰(21)整合Redis之初體驗Lettuce

    源碼地址

    本章源碼 : https://gitee.com/gongm_24/spring-boot-tutorial.git

    參考

    https://blog.52itstyle.vip/archives/1264/

    擴展

    Redis 相關資料

    • spring-data-redis文檔: https://docs.spring.io/spring-data/redis/docs/2.0.1.RELEASE/reference/html/#new-in-2.0.0
    • Redis 文檔: https://redis.io/documentation
    • Redis 中文文檔: http://www.redis.cn/commands.html


    分享到:


    相關文章: