Spring Boot Redis集群案例

2021-10-05 02:36:16 字數 4356 閱讀 1248

1)配置redis配置檔案

port 6379

daemonize yes

# bind是繫結ip,0.0.0.0是代表任何ip

bind 0.0.0.0

# 保護模式     

protected-mode no

# 新增節點

cluster-enabled yes

# cluster配置檔名,該檔案屬於自動生成,僅用於快速查詢檔案並查詢檔案內容

cluster-config-file nodes-6379.conf

#節點服務響應超時時間,用於判定該節點是否下線或切換為從節點(10000是10秒)

cluster-node-timeout 10000

複製並修改配置檔案(sed

命令是利用指令碼來處理文字檔案)

[root@server redis]# sed "s/6379/6380/g" redis-6379.conf >redis-6380.conf

[root@server redis]# sed "s/6379/6381/g" redis-6379.conf >redis-6381.conf

[root@server redis]# sed "s/6379/6381/g" redis-6379.conf >redis-6381.conf

[root@server redis]# sed "s/6379/6382/g" redis-6379.conf >redis-6382.conf

[root@server redis]# sed "s/6379/6383/g" redis-6379.conf >redis-6383.conf

[root@server redis]# sed "s/6379/6384/g" redis-6379.conf >redis-6384.conf

分別啟動

[root@server redis]# redis-server /etc/redis/redis-6379.conf

檢視啟動情況

允許對應埠號的請求通過防火牆,並重啟防火牆,檢視開啟埠號

[root@localhost ~]#firewall-cmd --zone=public --add-port=6379/tcp –permanent

[root@localhost ~]#firewall-cmd --zone=public --add-port=6380/tcp --permanent

[root@localhost ~]#firewall-cmd --zone=public --add-port=6381/tcp --permanent

[root@localhost ~]#firewall-cmd --zone=public --add-port=6382/tcp --permanent

[root@localhost ~]#firewall-cmd --zone=public --add-port=6383/tcp --permanent

[root@localhost ~]#firewall-cmd --zone=public --add-port=6384/tcp --permanent

[root@localhost ~]#systemctl restart firewalld.service

[root@localhost ~]#firewall-cmd --list-port

新增節點(命令後面的1,代表一主一從,如果你要一主二從,設定為2)

[root@server redis]# redis-cli --cluster create ***.***.xx.***:6379 1 ***.***.xx.***:6380 ***.***.xx.***:6381 ***.***.xx.***:6382 ***.***.xx.***:6383 ***.***.xx.***:6384 --cluster-replicas 1

在客戶端使用命令檢視節點、儲存資料(會切換節點客戶端

(2)spring boot配置redis集群配置預設資料來源連線池(lettuce),如果你想用jedis,需要新增jedis的依賴,修改配置檔案就可以

<dependencies>

<dependency>

<groupid>

org.springframework.bootgroupid>

<artifactid>

spring-boot-starter-data-redisartifactid>

dependency>

<dependency>

<groupid>

org.apache.commonsgroupid>

<artifactid>

commons-pool2artifactid>

dependency>

<dependency>

<groupid>

org.springframework.bootgroupid>

<artifactid>

spring-boot-starter-webartifactid>

dependency>

<dependency>

<groupid>

org.springframework.bootgroupid>

<artifactid>

spring-boot-starter-testartifactid>

<scope>

testscope>

dependency>

dependencies> #

配置redis集群

spring:

redis:

cluster:

nodes: ***.***.xx.***:6379,***.***.xx.***:6380,***.***.xx.***:6381,***.***.xx.***:6382,***.***.xx.***:6383,***.***.xx.***:6384

lettuce:

pool:

max-active:

1000

# 連線池最大連線數(使用負值表示沒有限制)

max-idle: 10

# 連線池中的最大空閒連線

min-idle: 5

# 連線池中的最小空閒連線

max-wait: -1

# 連線池最大阻塞等待時間(使用負值表示沒有限制)

spring boot整合redis進行資料快取功能

@cacheable 表明spring在呼叫方法之前,首先應該在快取中查詢方法的返回值。如果這個值能夠找到,就會返回快取的值。否則的話,這個方法就會被呼叫,返回值會放到快取之中

@cacheput 表明spring應該將方法的返回值放到快取中。在方法的呼叫前並不會 檢查快取,方法始終都會被呼叫

@cacheevict 表明spring應該在快取中清除乙個或多個條目

@caching 這是乙個分組的註解,能夠同時應用多個其他的快取註解

@cacheconfig 可以在類層級配置一些共用的快取配置

測試類@runwith

(springrunner.class)

@springboottest

public classredisclustertest }

Spring Boot Redis 資料快取

之前都是在spring mvc中使用redis,這裡記錄在spring boot中使用redis作為資料快取的過程。參考spring boot整合spring data jpa,搭建專案。本次是在docker中部署redis,從中直接pull官方的redis映象,啟動redis。使用redisdes...

spring boot redis發布訂閱

1.pom 依賴 org.springframework.boot spring boot starter data redis redis.clients jedis 2.配置 redis host 10.5.6.13 port 6379 password sensetime timeout 10...

spring boot redis指定DB儲存資訊

背景 專案需求 redis快取,不同資訊 需要儲存在不同的db 版本 spring boot 2.0 以上 思路 定義乙個 index入參,指定db索引 缺點 每次和儲存資訊 和 讀取資訊 都要指定乙個index 效率比較低 redistest類 component public class red...