基於docker/dockerfile實現redis主從複製

今天咱們來搭建基於docker實現redis主從複製集羣mysql

爲何要使用redis集羣模式?redis

Redis能夠說是內存數據庫,mysql的數據庫是真實存儲在硬盤裏的,所以,redis的讀取速度要比mysql快得多,同時,redis也是最好的cache工具,通常狀況下,數據存儲量大小不能超過主機的內存,咱們說的高併發場景很容易形成,數據溢出乃至性能瓶頸,顯然單機沒法知足咱們的業務需求了,就須要作集羣,若是你的網站天天PV兩也就幾百,幾千,幾萬的話, 那就不必了!sql

什麼是Redis主從複製集羣?docker

簡單理解就是講Redis主服務器的數據同步到其餘的redis服務器上,前者成爲主節點(master),後者稱之爲從節點(Slave),數據的複製都是單向的,由於都是主節點複製到從節點,默認狀況下,每臺服務器都是主節點,且每一個主節點能夠有多個從節點,可是每一個從節點只能有一個主節點(master)數據庫

 

那麼說到redis主從複製有什麼做用呢?vim

  • 數據冗餘:主從複製實現了redis的數據的熱備份,是持久化以外的數據冗餘方式
  • 故障恢復:當主節點故障時,能夠由從節點提供服務,快速的故障轉移
  • 負載均衡:能夠在主從複製的基礎上,配合讀寫分離,由主節點負責寫,從節點負責讀取數據,從而分擔服務器的負載壓力,大大提升redis的併發量

# 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!

上述實驗比較簡單,由於你們的技術能力和基礎都不同,也是分享一些小技術博客,但願可以幫助到你們~後續還會持續更新,謝謝支持!

相關文章
相關標籤/搜索