今天咱們來搭建基於docker實現redis主從複製集羣mysql
爲何要使用redis集羣模式?redis
Redis能夠說是內存數據庫,mysql的數據庫是真實存儲在硬盤裏的,所以,redis的讀取速度要比mysql快得多,同時,redis也是最好的cache工具,通常狀況下,數據存儲量大小不能超過主機的內存,咱們說的高併發場景很容易形成,數據溢出乃至性能瓶頸,顯然單機沒法知足咱們的業務需求了,就須要作集羣,若是你的網站天天PV兩也就幾百,幾千,幾萬的話, 那就不必了!sql
什麼是Redis主從複製集羣?docker
簡單理解就是講Redis主服務器的數據同步到其餘的redis服務器上,前者成爲主節點(master),後者稱之爲從節點(Slave),數據的複製都是單向的,由於都是主節點複製到從節點,默認狀況下,每臺服務器都是主節點,且每一個主節點能夠有多個從節點,可是每一個從節點只能有一個主節點(master)數據庫
那麼說到redis主從複製有什麼做用呢?vim
# docker pull docker.io/centoscentos
[root@ff ~]# mkdir -p /usr/dockerfile
[root@ff ~]# vim /usr/dockerfile/dockerfile服務器
FROM docker.io/centos
MAINTAINER BIXIAOYU
RUN groupadd -r redis &&useradd -r -g redis redis
RUN yum -y update && yum -y install epel-release && yum -y install redis && yum -y install net-tools
EXPOSE 6379併發
[root@ff ~]# cd /usr/dockerfile/
[root@ff dockerfile]# ls
dockerfile
[root@ff dockerfile]# docker build -t redis .負載均衡
# docker network create --subnet=172.60.0.0/16 mynetwork #在這裏爲了方便實驗,單首創建一個bridge網橋,分配172.60.0網段
[root@ff dockerfile]# docker run -itd --name redis-master --net=mynetwork -p 6382:6379 --ip 172.60.0.2 redis
abbbf2630b4afe45ad589d5ee8f2e772e3b356e4a05c592e33a8471a3ef35c02
[root@ff dockerfile]# docker run -itd --name redis-slave1 --net=mynetwork -p 6383:6379 --ip 172.60.0.3 redis
bc5e76dade1e0b4adffce7b8f73d2e0468d8b103ad21e83e7156975a4de6ee40
[root@ff dockerfile]# docker run -itd --name redis-slave2 --net=mynetwork -p 6384:6379 --ip 172.60.0.4 redis
7e67d48f87e39653c590228e4081073a22417708e3a9447d7bd58f8c69a88409
【開始配置主從並啓用】
172.60.0.2 redis主節點配置
[root@abbbf2630b4a /]# vim /etc/redis.conf
bind 0.0.0.0 #容許全部IP能訪問
protected-mode no #redis保護模式,redis登陸密碼設置爲空,無驗證,這裏爲了方便測試
[root@abbbf2630b4a /]# redis-server /etc/redis.conf &
[root@abbbf2630b4a /]# ps -ef | grep redis
root 297 97 0 13:11 ? 00:00:02 redis-server 0.0.0.0:6379
root 334 97 0 13:45 ? 00:00:00 grep --color=auto redis
172.60.0.3以及172.60.0.4兩個redis從節點配置
# vim /etc/redis.conf
bind 0.0.0.0
protected-mode no
slaveof 172.60.0.2 6379 #指定爲redis主節點的IP和對應端口
分別啓動redis
# redis-server /etc/redis.conf &
簡單測試master主節點的redis數據是否同步到兩臺slave從節點,很明顯已經同步成功了~
END!
上述實驗比較簡單,由於你們的技術能力和基礎都不同,也是分享一些小技術博客,但願可以幫助到你們~後續還會持續更新,謝謝支持!