SpringBoot整合Redis(單機 集群)

2021-08-29 12:12:35 字數 2281 閱讀 1138

前面redis弄了那麼多, 就是為了在專案中使用. 

那這裡, 就分別來看一下, 單機版和集群版在springboot中的使用吧.  在裡面, 我會同時貼出jedis版, 作為比較.

1. pom.xml

org.springframework.boot

spring-boot-starter-data-redis

1.5.9.release

spring:

redis:

port: 6379

host: 127.0.0.1

password: redis

這裡為redis設定了乙個密碼, 可以在 redis.conf 檔案中設定: requirepass 密碼

3. controller

@restcontroller

public class ******controller

}

4. jedis來看一下單機版redis下, jedis是怎麼玩的.

@test

public void testjedispool() throws exception

結果我就不展示了, 通過以上步驟, 能把controller存入的資料, 讀取出來. 

這裡有一點要注意以下, 如果步驟3用的不是stringredistemplate, 而是redistemplate, 那麼通過步驟4是讀取不出來的. 

如果你裝了 redis desktop manager , 可以使用這個去看一下, 就會知道為啥讀不出來. 

具體為啥會產生這樣的情況呢?

可以看一下redistemplate的原始碼:

看得出來, 這裡使用了 jdkserializationredisserializer 來序列化 key 和 value.

直觀點的話, 可以看下圖:

so, 這裡就能看出來, 為啥用abc直接去查, 是查不到想要的結果的.

在集群裡面, 如果你使用的是 spring-boot-starter-data-redis 的話, 就會發現, 超方便, 只要改一下配置檔案就可以了, 其他的都可以不改.

spring:

redis:

cluster:

nodes:

- 127.0.0.1:7001

- 127.0.0.1:7002

- 127.0.0.1:7003

- 127.0.0.1:7004

- 127.0.0.1:7005

- 127.0.0.1:7006

password: 123456

2. controllercontroller裡面的方法不變, 還是用那個. 直接用 terminal 操作檢視:

確實存進去了. 

3. jedis

@test

public void testjediscluster() throws exception

這裡有個比較蛋疼的事情就是, 如果集群設定了密碼, 並不能通過jediscluster.auth()方式來輸入密碼

剛開始, 我還以為這是不推薦使用的, 誰知道, 這tm是不能用啊. 過分了, 簡直.

通過jedis的**, 可以發現, 單機版和集群版, 操作的物件是不一樣的, 那麼在開發的過程中, 怎麼來統一呢?(開發的時候, 不需要使用redis集群, 上線的時候, 直接切換過去就可以了)

那麼想要解決這個問題, 可以通過策略模式來解決, 定義乙個操作介面, 在介面中定義方法, 我管你單機還是集群, 都要來實現這個介面. 那麼在操作的過程中, 就統一到介面了. 剩下來的就是賦值和切換了.

而使用  spring-boot-starter-data-redis 就不需要考慮那麼多了, 確實方便許多.

Redis安裝 spring註解整合Redis

一 windows 下安裝 開啟乙個cmd視窗,使用cd命令切換到檔案目錄e redis,執行redis server.exe redis.windows.conf。後面那個redis.windows.conf可以省略,如果省略,會啟用預設的。輸入之後,會顯示如下介面 這時候另起乙個cmd視窗,原來...

springBoot整合dubbo整合專案

傳統spring 整合dubbo,需要繁瑣的編寫一堆堆的 xml 配置檔案 而springboot整合dubbo後,不在需要寫 xml,通過jar包引用,完 成整合,通過註解的形式完成配置。提高我們的開發效率 目錄結構 1 服務層生產者開發 hs ldm server service 1.1新增du...

SpringBoot整合系列 整合Swagger2

io.springfox springfox swagger2 2.7.0 io.springfox springfox swagger ui 2.7.0 一般無配置項,必要時可以新增自定義配置項,在配置類中讀取 swagger2的配置內容僅僅就是需要建立乙個docket例項 configurati...