在正式專案的時候,搭建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...