1. 程式人生 > 其它 >Redis叢集搭建及整合springboot

Redis叢集搭建及整合springboot

Redis叢集搭建

  1. 將rdb、aof檔案都刪除掉;

  2. 製作6個例項:6379,6380,6381,6389,6390,6391

    • 配置redis cluster:新增redis6379.conf檔案

      include /myredis/redis.conf
      pidfile "/var/run/redis_6379.pid"
      port 6379
      dbfilename "dump6379.rdb"
      cluster-enabled yes
      cluster-config-file "nodes-6379.conf"
      cluster-node-timeout 15000
      
      cluster-enabled yes    開啟叢集模式
      cluster-config-file nodes-6379.conf  設定節點配置檔名
      cluster-node-timeout 15000   設定節點失聯時間,超過該時間(毫秒),叢集自動進行主從切換。
      
    • 拷貝多個redis.conf檔案:redis6380.confredis6381.confredis6389.confredis6390.confredis6391.conf;並使用查詢替換修改另外5個檔案(如:%s/6379/6380

    • 啟動6個redis服務

  3. 將六個節點合成一個叢集
    組合之前,請確保所有redis例項啟動後,nodes-xxxx.conf檔案都生成正常。

    合體操作:

    • cd /opt/redis-6.2.1/src 先進入src資料夾
    • redis-cli --cluster create --cluster-replicas 1 192.168.11.101:6379 192.168.11.101:6380 192.168.11.101:6381 192.168.11.101:6389 192.168.11.101:6390 192.168.11.101:6391

整合SpringBoot

  1. 匯入依賴
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-test</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- spring2.X整合redis所需common-pool2-->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
    <version>2.6.0</version>
</dependency>

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
</dependency>
  1. 編寫配置檔案
server.port=6001

#Redis伺服器地址
#spring.redis.host=*.*.*.*
#Redis伺服器連線埠
#spring.redis.port=6379

#Redis資料庫索引(預設為0)
spring.redis.database= 0
#連線超時時間(毫秒)
spring.redis.timeout=1800000
#連線池最大連線數(使用負值表示沒有限制)
spring.redis.lettuce.pool.max-active=20
#最大阻塞等待時間(負數表示沒限制)
spring.redis.lettuce.pool.max-wait=-1
#連線池中的最大空閒連線
spring.redis.lettuce.pool.max-idle=5
#連線池中的最小空閒連線
spring.redis.lettuce.pool.min-idle=0

spring.redis.cluster.nodes=*.*.*.*:6379, *.*.*.*:6380, *.*.*.*:6381, *.*.*.*:6389, *.*.*.*:6390, *.*.*.*:6391
  1. Redis配置類
  2. RedisUtil工具類