本來想給大家搭建偽集群的,想了想還是給大家搭建真實的集群吧。這樣更容易大家學習。
But但是我的電腦是雙4G的一定會很卡的。忍了,只要大家能從中學到東西。這樣就是值得的。

一、安裝redis集群主從復制:
直接上操作步驟:
1、打開三台虛擬主機(不會安裝Centos7的請移步“安裝centos7及連接” 文章),並且用xsheel連接上root用戶
第一台ip:192.168.241.138

第二台ip:192.168.241.139

第三台ip:192.168.241.140

2、連接成功

3、三台主機安裝dokcer並啟動docker(詳細安裝步驟請移步"Docker安裝以及HelloWorld"文章)
4、三台主機拉取redis鏡像
拉取命令:docker pull redis

4.1檢測三台主機是否拉去成功:
第一台ip:192.168.241.138

第二台ip:192.168.241.139

第三台ip:192.168.241.140

查詢所有命令:docker images
查詢redis鏡像:docker images |grep redis
5、三台主機創建存放redis.conf文件目錄並拉去redis.conf配置文件:

創建目錄:略 可以存放在任何目錄 小優放在了/DATA/yuanmayouchuang/docker/redis/目錄下
拉去redis.conf文件命令:wget -c http://download.redis.io/redis-stable/redis.conf
6、啟動三台redis:

啟動命令:docker run --name redis -v /DATA/yuanmayouchuang/docker/redis/redis.conf:/usr/local/etc/redis/redis.conf -d -p 6379:6379 -p 26379:26379 redis
參數詳解:
docker:死記硬背。
run:啟動容器固定寫法
--name:自定義啟動容器名稱
-v 主機redis.conf 和redis容器做映射
-d 后台啟動
-p 端口映射 6379是redis端口 26379是哨兵端口
redis:鏡像名稱
查看啟動結果:
192.168.241.138 主機redis以啟動

192.168.241.139 主機redis以啟動

192.168.241.140 主機redis以啟動

7、進入三台主機redis容器內部。

進入容器內部命令:docker exec -it 容器id/容器名稱 /bin/bash(固定寫法記住就好了)
進入內部可以對單個redis主機進行set值或get值

1、進入redis容器 docker exec -it 容器id/容器名稱 /bin/bash
2、輸入redis-cli(進入redis客戶端)
3、set name xiaoyouyou(set存值)
4、get name (get取值)
8、查詢三台主機的信息

1、進入redis容器 docker exec -it 容器id/容器名稱 /bin/bash
2、輸入redis-cli(進入redis客戶端)
3、輸入info
我們發現三台都是主節點。
9、然后我們人工給他們挑選一個老大 那就192.168.241.138為老大 192.168.241.139和192.168.241.140為小弟吧。

1、進入139和140容器 命令 docker exec -it 容器id/容器名稱 /bin/bash
2、輸入redis-cli(進入redis客戶端)
3、綁定主redis信息:SLAVEOF 主ip 主端口
綁定完成我們看一下三個redis服務器的關系:
140 容器 info查詢一下 我們已經發現已經變成了從節點。並且主節點為:138主機

139容器info查詢一下 我們也發現變成了從節點。並且主節點為:138主機

我們看一下138主機的信息。

至此redis主從已經搭建完畢
10、測試主從復制
主:192.168.241.138
從:192.168.241.139
從:192.168.241.140
主節點存取數據:

從節點同步數據:

從節點同步數據:

我們發現從節點是沒有寫入權限的,只有讀的權限,這就是讀寫分離。兩讀一寫

主可以讀寫,從只能讀。這也是redis集群的特點:讀寫分離。
我們用客戶端連接一下:建議用主節點連接就可以了,因為可以讀寫。用從節點只能讀取數據。

可以用客戶端進行set或get對緩存數據進行crud

至此我們redis主從復制就搭建完畢了。
二、在redis主從復制基礎上搭建redis哨兵模式
1、三台主機 更新redis容器依賴以及安裝vim命令

進入三台redis容器:docker exec -it 容器id/容器名稱 /bin/bash(固定寫法記住就好了)
更新依賴命令:apt-get
安裝vim命令:apt-get install -y vim
2、三台主機創建哨兵配置文件:sentinel.conf(建議在容器根目錄,好記)

1、進入三台redis容器:
2、進入容器根目錄
3、創建哨兵配置文件:vim sentinel.conf(三台容器哨兵配置一模一樣)
4.輸入:
port:26379 #哨兵端口號 一定要和啟動命令映射第二個端口號一致
daemonize yes #后台啟動
sentinel monitor mymaster 主節點ip 主節點端口 2
192.168.241.138:最后配置內容為:

192.168.241.139:最后配置內容為:

192.168.241.140:最后配置內容為:

3、啟動redis哨兵
三台redis哨兵配置文件,配置完畢后,保存退出。

依次三台在sentinel.conf 配置文件同一級目錄執行:redis-sentinel sentinel.conf
4、查看是否啟動哨兵

三台容器依次安裝ps命令:apt-get install procps
依次查看三台容器的是否啟動哨兵。
5、測試哨兵模式:
我們把主節點192.168.241.138 redis給關閉

我們看到139和140主節點都已經是down狀態了,redis會在30秒之后重新選舉。如果30秒原來主節點活過來。則不進行選舉。

大概30秒已經過去了,我們在看一下從服務器的狀態:

我們發現139現在已經變成了主節點,我們看一下140的狀態:

redis自己選舉的139主節點,我們發現也是可以正常寫入數據的。

redis 140容器也是可以正常同步到數據的。

我們把關閉的那台138 redis給啟動。

我們查詢一下新主節點139的信息看是否有兩個從節點:

我們剛剛只啟動了redis 並沒有啟動138 容器redis的哨兵,如果現在現在139主機down掉了就不會重新選舉了, 我們需要手動把138主機的哨兵開啟,大家也可以寫一個自啟動腳本。

至此我們redis集群 主從復制和哨兵模式已經搭建完畢。
終、、
以上就是docker搭建redis集群-主從復制以及哨兵模式 感覺是不是超簡單! 有什么問題可以聯系我哈。
鼓勵作者寫出更好的技術文檔,就請我喝一瓶哇哈哈哈哈哈哈哈。。你們的贊助決定我更新的速度哦!
微信:
支付寶:
感謝一路支持我的人。。。。。
Love me and hold me
QQ:69673804(16年老號)
EMAIL:itw@tom.com
友鏈交換
如果有興趣和本博客交換友鏈的話,請按照下面的格式在評論區進行評論,我會盡快添加上你的鏈接。
網站名稱:猿碼優創
網站地址:http://blog.cnbuilder.cn
網站描述:年少是你未醒的夢話,風華是燃燼的彼岸花。
網站Logo/頭像: [頭像地址](https://blog.cnbuilder.cn/upload/2018/7/avatar20180720144536200.jpg)
歡迎關注猿碼優創(聯系小優優進內部群哦,新鮮技術優先更新):



