五分鐘學會Docker搭建Redis主從集群

2021-10-07 02:25:21 字數 1790 閱讀 5596

在正式專案的時候,搭建redis集群通常需要使用配置檔案,這樣能保證redis的可定製性。現在的網上的教程都較為簡易,沒有給redis設定安全密碼,配置檔案也很簡陋,於是寫這篇部落格作為記錄。

我在搭建redis集群的時候遇到了如下問題,docker容器啟動時,redis從機不能連線上redis主機,經常以connect狀態顯示,正常連線應該顯示connected狀態,排查問題後發現原因是masterauth配置項需要配置,以下是完整配置流程:

修改主機配置檔案,將redis.conf的預設配置檔案稍作修改,主要是增加密碼,並且需要注意,daemonize專案需要設定成no,非後台模式,否則docker啟動後redis會自動關閉

主要修改配置檔案中的如下幾項:

主機:

port 6379

logfile "6379.log"

daemonize no   # 關閉守護模式

protected-mode no   #protected-mode是3.2 之後加入的新特性,為了禁止公網訪問redis cache,加強redis安全的。根據自己需要配置,它啟用的條件,有兩個,沒有bind ip 以及沒有設定訪問密碼,這裡選擇關閉

requirepass "admin.123"

#設定redis登入密碼

從機:

這裡注意從機的埠號一定要記得修改,否則會影響後續的使用

port 6380

logfile "6380.log"

daemonize no   # 關閉守護模式

protected-mode no   

requirepass "admin.123"

# 設定redis登入密碼

replicaof 主機ip 主機埠號 # 根據自己需求設定

masterauth "admin.123"

# 最重要的一步,不設定這個會設定失敗

啟動

主機啟動,使用配置檔案

sudo docker run --name redis6379 --restart=always -p 6379:6379 -v /home/redis_conf/redis6379.conf:/redis6380.conf -v /home/redis/data:/data -d redis redis-server /redis6379.conf
從機啟動,使用配置檔案

啟動兩個埠

sudo docker run --name redis6380 --restart=always -p 6380:6380 -v /home/redis_conf/redis6380.conf:/redis6380.conf -v /home/redis/data:/data -d redis redis-server /redis6380.conf
sudo docker run --name redis6381 --restart=always -p 6381:6381 -v /home/redis_conf/redis6381.conf:/redis6381.conf -v /home/redis/data:/data -d redis redis-server /redis6381.conf
這樣就成功啟動了一組二從的redis集群

11分鐘學會SpringBoot整合redis元件

本人部落格 不要跟過去的自己比,要期待未來的自己,珍愛現在的自己 org.springframework.bootgroupid spring boot starter data redisartifactid dependency redis資料庫索引 預設為0 spring.redis.data...

一分鐘學會 docker

標題黨,其實僅僅是 docker 的發布而已。檢視當前執行的 docker docker ps a 停止 docker docker stop 容器 id 或者 tag 移除 docker docker rm 容器 id 檢視所有映象 docker images 移除映象 docker rmi 例如...

教你五分鐘學會快速排序

20為選定的關鍵字 轉換為二叉樹表示 即快排是加了關鍵字交換的二叉樹遍歷 想想快排的兄弟歸併排序,二者都是遍歷二叉樹.pub fn quicksort arr mut t where t std cmp partialord fn quick sorted arr mut t a usize,b u...