1、修改默認端口,將6379修改爲期望的端口號
2、執行該腳本,使用redis-trib.rb工具構建集羣
集羣構建完成前不要配置密碼,集羣構建完畢再通過config set + config rewrite命令逐個機器設置密碼。
- 如果對集羣設置密碼,那麼
requirepass和masterauth
都需要設置,否則發生主從切換時,就會遇到授權問題。 - 各個節點的密碼都必須一致,否則Redirected就會失敗。
具體指令如下:
- 設置masterauth
config set masterauth 密碼
- 設置requirepass
config set requirepass 密碼
- 驗證密碼,以繼續操作
auth a123123
- 回寫到文件,使其永久生效(如果這裏出現Permission denied,則說明Dockerfile少了
RUN chmod 777 /usr/local/etc/redis/redis.conf
)
config rewrite
如圖所示:
然後再使用docker exec指令進入容器內部看一下masterauth和requirepass是否寫入到文件裏
docker exec -it 容器ID /bin/bash 或 sh
cat指令查看
cat /usr/local/etc/redis/redis.conf
得到如下圖所示:
可以看到masterauth和requirepass被追加到文件的最後,即使重啓密碼也還生效。
至此,redis集羣密碼已修改完畢。
其實docker-compose起的作用並不大,因爲在單機上部署redis集羣確實沒什麼實際意義。但是,完全可以把slave結點放到不同的服務器上,再通過docker的redis-trib容器來連接,十分靈活和方便。