史上最详细Docker搭建Redis Cluster集群环境 值得收藏 每步都有图,不用担心学不会
之前無論學什么東西,總感覺只要會寫小Demo就完事了。但隨著學習的深入,(內卷)接觸的越來越多,集群、JVM、數據結構、算法、底層、Liunx 系統(tǒng),任重而道遠啊。
分享一句很喜歡的話:“八小時謀生活,八小時外謀發(fā)展”。
如果你也喜歡,那一起共勉😁😁
SpringBoot整合Redis實現(xiàn)發(fā)布/訂閱-集群配置
Docker 搭建 Redis Cluster 集群環(huán)境
- 一、環(huán)境
- 二、前期準備
- 2.1、搜索、拉取redis鏡像
- 2.2、Docker 容器網絡
- 2.3、編寫配置文件
- 三、啟動容器
- 3.1、啟動redis容器
- 3.2、創(chuàng)建Redis Cluster集群
- 1、進入redis-6379 容器
- 2、創(chuàng)建集群
- 3、查看節(jié)點相關信息
- 四、測試
- 4.1、本機測試
- 4.2、外網測試
- 4.3、出錯可能會用到的命令
- 4.4、可能會出的錯
- 五、博主自言
一、環(huán)境
- 阿里云服務器 CentOS 8
- docker版本為20.10.7
- redis 鏡像 (拉取為默認最新鏡像)
大致步驟:😜
二、前期準備
2.1、搜索、拉取redis鏡像
docker search redis docker pull redis2.2、Docker 容器網絡
創(chuàng)建虛擬網卡😄
創(chuàng)建虛擬網卡,主要是用于redis-cluster能于外界進行網絡通信,一般常用橋接模式。
docker network create myredis查看Docker 網卡信息
docker network ls3、查看dockerr網絡詳細信息
docker network inspect myredis4、補充(刪除網卡信息、幫助命令)
docker network rm myredis #刪除網卡命令 多個中間 空格隔開 docker network --help #顯示可帶參數等2.3、編寫配置文件
此處用到了一點 shlle 編程中 的一些命令,讓我們操作更加便利。😃
for port in $(seq 6379 6384); do mkdir -p /home/redis/node-${port}/conf touch /home/redis/node-${port}/conf/redis.conf cat << EOF > /home/redis/node-${port}/conf/redis.conf port ${port} requirepass 1234 bind 0.0.0.0 protected-mode no daemonize no appendonly yes cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 cluster-announce-ip 服務器ip地址 cluster-announce-port ${port} cluster-announce-bus-port 1${port} EOF done命令解釋:😊
- port:節(jié)點端口;
- requirepass:設置密碼,訪問時需要驗證
- protected-mode:保護模式,默認值 yes,即開啟。開啟保護模式以后,需配置 bind ip 或者設置訪問密碼;關閉保護模式,外部網絡可以直接訪問;
- daemonize:是否以守護線程的方式啟動(后臺啟動),默認 no;
- appendonly:是否開啟 AOF 持久化模式,默認 no;
- cluster-enabled:是否開啟集群模式,默認 no;
- cluster-config-file:集群節(jié)點信息文件;
- cluster-node-timeout:集群節(jié)點連接超時時間;
- cluster-announce-ip:集群節(jié)點 IP
- 注意: 如果你想要你的redis集群可以供外網訪問,這里直接填 服務器的IP 地址即可
- 如若為了安全,只是在服務器內部進行訪問,這里還需要做一些修改。
- cluster-announce-port:集群節(jié)點映射端口;
- cluster-announce-bus-port:集群節(jié)點總線端口。
redis 在官網上有說明為什么需要映射兩個端口 :redis官網
執(zhí)行命令完:
我們通過tree 命令查看目錄結構:(如果沒有 tree 命令先安裝 yum install -y tree)
接下來就是啟動容器拉
三、啟動容器
3.1、啟動redis容器
因為要啟動六個容器,一個一個去啟動,肯定是麻煩丫。就再次借助shell編程的力量。
for port in $(seq 6379 6384); \ do \docker run -it -d -p ${port}:${port} -p 1${port}:1${port} \--privileged=true -v /home/redis/node-${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \--privileged=true -v /home/redis/node-${port}/data:/data \--restart always --name redis-${port} --net myredis \--sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf done解釋:🤑
-
-it:交互
-
-d:后臺運行,容器啟動完成后打印容器
-
–privileged:是否讓docker 應用容器 獲取宿主機root權限(特殊權限-)
-
-p :端口映射
-
-v:文件掛載
-
–sysctl參數來設置系統(tǒng)參數,通過這些參數來調整系統(tǒng)性能
-
–restart always:在容器退出時總是重啟容器
-
–name :給容器取名
-
–net myredis :使用我們創(chuàng)建的虛擬網卡 (想詳細了解,可以去看看Docker 網絡方面知識)
執(zhí)行完成:
亦可使用docker ps -a 查看運行中容器。
可以看到已全部啟動成功。
👨?🔧
3.2、創(chuàng)建Redis Cluster集群
可隨意選擇一個節(jié)點進入,創(chuàng)建Redis集群。
1、進入redis-6379 容器
docker exec -it redis-6379 /bin/bash2、創(chuàng)建集群
redis-cli -a 之前設置的密碼 --cluster create 配置文件中的IP地址:6379 IP地址:6380 IP地址:6381 IP地址:6382 IP地址:6383 IP地址:6384 --cluster-replicas 1顯示這樣的畫面就表示已經成功拉。
3、查看節(jié)點相關信息
進入容器后,通過redis-cli -c -a 1234,進入redis。👼
輸入cluster info 查看集群信息
也可輸入cluster nodes 查看所有節(jié)點相關信息
👨?💻下一步就是進入測試階段拉。😀
四、測試
4.1、本機測試
我們在 6381中 set 進去,同時在 6379 中能夠取出來,這代表我們已經成功拉😁
4.2、外網測試
進入windows中 你redis下載的目錄中,進入cmd。
測試說明 我們已經可以連接拉。
那么我們就開啟兩個cmd 窗口,用不一樣的端口進入。
到此,可以證明我們的集群是已經搭建成功拉。
4.3、出錯可能會用到的命令
批量停止容器
for port in $(seq 6379 6384); do docker stop redis-${port} done批量刪除容器
for port in $(seq 6379 6384); do docker rm redis-${port} done4.4、可能會出的錯
注: 如果是阿里云或者騰訊云上的服務器 ,要記得打開安全組規(guī)則, 6379~6384和16379 ~16384都要打開。
如果是虛擬機上,可能牽扯到防火墻,這個得注意一下。
五、博主自言
👩?💻
如若存在錯誤,歡迎大家不嗇賜教!!!
如若存在疑惑或執(zhí)行錯誤,請大家評論或私信,定會第一時間回復。
一起繼續(xù)努力,或者啊,咱們一起🛌 ?。
總結
以上是生活随笔為你收集整理的史上最详细Docker搭建Redis Cluster集群环境 值得收藏 每步都有图,不用担心学不会的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot整合Security
- 下一篇: SpringBoot 整合 Redis