docker搭建Redis集群-主從復制以及哨兵模式


本來想給大家搭建偽集群的,想了想還是給大家搭建真實的集群吧。這樣更容易大家學習。

But但是我的電腦是雙4G的一定會很卡的。忍了,只要大家能從中學到東西。這樣就是值得的。

 

file

一、安裝redis集群主從復制:

直接上操作步驟:

1、打開三台虛擬主機(不會安裝Centos7的請移步“安裝centos7及連接” 文章),並且用xsheel連接上root用戶

第一台ip:192.168.241.138

file

第二台ip:192.168.241.139

file

第三台ip:192.168.241.140

file

2、連接成功

file

3、三台主機安裝dokcer並啟動docker(詳細安裝步驟請移步"Docker安裝以及HelloWorld"文章)

4、三台主機拉取redis鏡像

拉取命令:docker pull redis

file

4.1檢測三台主機是否拉去成功:

第一台ip:192.168.241.138

file

第二台ip:192.168.241.139

file

第三台ip:192.168.241.140

file

查詢所有命令:docker images

查詢redis鏡像:docker images |grep redis

5、三台主機創建存放redis.conf文件目錄並拉去redis.conf配置文件:

file

創建目錄:略 可以存放在任何目錄 小優放在了/DATA/yuanmayouchuang/docker/redis/目錄下

拉去redis.conf文件命令:wget -c http://download.redis.io/redis-stable/redis.conf

6、啟動三台redis:

file

啟動命令: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以啟動

file

192.168.241.139 主機redis以啟動

file

192.168.241.140 主機redis以啟動

file

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

file

  進入容器內部命令:docker exec -it 容器id/容器名稱 /bin/bash(固定寫法記住就好了)

進入內部可以對單個redis主機進行set值或get值

file

  1、進入redis容器 docker exec -it 容器id/容器名稱 /bin/bash
  2、輸入redis-cli(進入redis客戶端)
  3、set name xiaoyouyou(set存值)
  4、get name (get取值)

8、查詢三台主機的信息

file

  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為小弟吧。

file

   1、進入139和140容器 命令 docker exec -it 容器id/容器名稱 /bin/bash
   2、輸入redis-cli(進入redis客戶端)
   3、綁定主redis信息:SLAVEOF  主ip    主端口

綁定完成我們看一下三個redis服務器的關系:

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

file

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

file

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

file

至此redis主從已經搭建完畢

10、測試主從復制

主:192.168.241.138

從:192.168.241.139

從:192.168.241.140

主節點存取數據:

file

從節點同步數據:

file

從節點同步數據:

file

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

file

主可以讀寫,從只能讀。這也是redis集群的特點:讀寫分離。

我們用客戶端連接一下:建議用主節點連接就可以了,因為可以讀寫。用從節點只能讀取數據。

file

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

file

至此我們redis主從復制就搭建完畢了。

二、在redis主從復制基礎上搭建redis哨兵模式

1、三台主機 更新redis容器依賴以及安裝vim命令

file

進入三台redis容器:docker exec -it 容器id/容器名稱 /bin/bash(固定寫法記住就好了)
更新依賴命令:apt-get
安裝vim命令:apt-get install -y vim

2、三台主機創建哨兵配置文件:sentinel.conf(建議在容器根目錄,好記)

file

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

192.168.241.138:最后配置內容為:

file

192.168.241.139:最后配置內容為:

file

192.168.241.140:最后配置內容為:

file

3、啟動redis哨兵

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

file

依次三台在sentinel.conf 配置文件同一級目錄執行:redis-sentinel sentinel.conf

4、查看是否啟動哨兵

file

三台容器依次安裝ps命令:apt-get install procps
依次查看三台容器的是否啟動哨兵。

5、測試哨兵模式:

我們把主節點192.168.241.138 redis給關閉

file

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

file

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

file

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

file

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

file

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

file

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

file

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

file

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

file

至此我們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)

歡迎關注猿碼優創(聯系小優優進內部群哦,新鮮技術優先更新):

file


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM