在Docker中進行Redis主從配置


〇、環境准備

  1.兩台裝好Docker的計算機(或兩個虛擬機)

    我這里是在VMware中運行的兩個Centos7系統

    我們把CentOS-64-0作為主機(Master),CentOS-64-1作為從機(Slave)

    

 

 

  2.安裝redis

    在docker中安裝redis(只把redis pull下來,不要進一步配置)

    

 

 

 

一、在docker中使用外部 redis的配置文件

  1.配置文件redis.conf

    首先在你的兩台宿主機上編寫好redis配置文件,即redis.conf

    可以從redis官網下載配置文件模板 在Centos7系統中,使用以下命令,下載到本地:

    wget http://download.redis.io/redis-stable/redis.conf -O <文件名>

    

 

  2.配置參數

    主機(Master)修改下載下來的redis.conf,主要修改參數如下:

#bind 127.0.0.1        #如果bind選項為空的話,則允許所有來自於可用網絡接口的連接
protected-mode no      #保護模式,若為yes,只允許本地客戶端連接
appendonly yes         #開啟后,Redis會把每次寫入的數據在接收后都寫入appendonly.aof文件,每次啟動時Redis都會先把這個文件的數據讀入內存里

 

    從機(Slave)修改下載下來的redis.conff,主要修改參數如下:

#bind 127.0.0.1
protected-mode no
appendonly yes

# replicaof <master ip> <master port>
replicaof 192.168.22.130 6379 #Redis主機(Master)IP 端口

 

二、在docker中創建redis容器,並以外部文件啟動

  1.主從機器同樣啟動:

# docker redis 以配置文件運行:
#docker run -p <容器端口>:<主機端口> --name <容器名> -v <本地配置文件映射容器配置文件> -v <本地文件夾掛載到容器文件夾> -d(表示以守護進程方式啟動容器) <啟動redis服務並制定配置文件(容器中的路徑)>
docker run -p 6379:6379 --name myredis -v /usr/local/docker/redis.conf:/usr/local/redis.conf -v /usr/local/docker/data:/usr/local/data -d redis redis-server /usr/local/redis.conf

 

  2.進入redis

  確保docker以及redis容器都啟動之后,使用docker exec -it <redis容器名> redis-cli命令進入redis

  

 

   3.測試

    在主機存入一個key:

      

 

    在從機獲取:

      

 

 

 

 

 

三、注意

  1.replicaof 和 slaveof

    在redis5.x的主從配置中,從機配置要配置 replicaof 參數。而早期版本,要配置的是slaveof參數。

 

  2.已有redis容器

    得先刪除該容器,待配置好外部redis.conf后,重新創建。

 

  3.daemonize參數

    在docker中,redis.conf文件中的daemonize參數要設置為no(默認是no)。

    daemonize=yes的意思為后台運行redis,但這會導致容器跑不起來。

 

  4.protected-mode

    設置為yes時,只允許本地服務端連接,導致不同機子(或虛擬機)的主從機無法連接。

 


免責聲明!

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



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