天天看點

【Redis主從架構】搭建一個一主一從的Redis主從架構5. 【Redis主從架構】搭建一個一主一從的Redis主從架構

5. 【Redis主從架構】搭建一個一主一從的Redis主從架構

1. 學習目标

搭建一個一主一從的Redis主從架構。
主節點去寫,從節點去讀,如果在主節點寫入資料之後,從節點能讀取到,就說明搭建成功了。

2. 搭建 redis slave node

2.1 安裝tcl

#1. 下載下傳tcl安裝包
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz

#2. 解壓tcl8.6.1-src.tar.gz
tar -zxvf tcl8.6.1-src.tar.gz

#3. 配置tcl
cd /usr/local/tcl8.6.1/unix
./conifgure

#4. 安裝tcl
make && make install
           

2.2 安裝Redis

tar -zxvf redis-3.2.8.tar.gz

cd redis-3.2.8

make && make test && make install
           

2.2.1 Redis生産環境啟動方案配置

  1. redis/utils目錄下,有個redis_init_script腳本
【Redis主從架構】搭建一個一主一從的Redis主從架構5. 【Redis主從架構】搭建一個一主一從的Redis主從架構
  1. 将redis_init_script腳本拷貝到 linux系統的/etc/init.d目錄中,将redis_init_script重命名為redis_6379,6379是我們希望這個redis執行個體監聽的端口号
    【Redis主從架構】搭建一個一主一從的Redis主從架構5. 【Redis主從架構】搭建一個一主一從的Redis主從架構
  2. 修改redis_6379腳本的第6行的REDISPORT,設定為相同的端口号(預設就是6379)
【Redis主從架構】搭建一個一主一從的Redis主從架構5. 【Redis主從架構】搭建一個一主一從的Redis主從架構
  1. 建立兩個目錄:/etc/redis(存放redis的配置檔案),/var/redis/6379(存放redis的持久化檔案)
mkdir /etc/redis

mkdir /var/redis/6379
           
  1. 修改redis配置檔案(預設在根目錄下,redis.conf),拷貝到/etc/redis目錄中,修改名稱為6379.conf
  • redis.conf
【Redis主從架構】搭建一個一主一從的Redis主從架構5. 【Redis主從架構】搭建一個一主一從的Redis主從架構
【Redis主從架構】搭建一個一主一從的Redis主從架構5. 【Redis主從架構】搭建一個一主一從的Redis主從架構

5.1 修改redis.conf中的部配置設定置為生産環境

# 讓redis以daemon程序運作
daemonize yes

# 設定redis的pid檔案位置
pidfile /var/run/redis_6379.pid

# 設定redis的監聽端口号
port 6379

# 設定持久化檔案的存儲位置
dir /var/redis/6379

# 綁定ip位址(本機的ip位址)
bind 192.168.0.111

           
【Redis主從架構】搭建一個一主一從的Redis主從架構5. 【Redis主從架構】搭建一個一主一從的Redis主從架構
【Redis主從架構】搭建一個一主一從的Redis主從架構5. 【Redis主從架構】搭建一個一主一從的Redis主從架構
【Redis主從架構】搭建一個一主一從的Redis主從架構5. 【Redis主從架構】搭建一個一主一從的Redis主從架構

5.2 設定redis跟随系統啟動自啟動**

在redis_6379腳本中,最上面,加入兩行注釋
# chkonfig: 2345 90 10

# description: Redis is a persistent key-value datebase

           
【Redis主從架構】搭建一個一主一從的Redis主從架構5. 【Redis主從架構】搭建一個一主一從的Redis主從架構

執行指令:chkconfig redis_6379 on

2.2.2 配置主從節點

在slave node配置:

# 注意:redis3.x 版本是配置:slaveof 192.168.1.1 6379

# 我用的是redis-5.x
 replicaof 192.168.0.103
           
【Redis主從架構】搭建一個一主一從的Redis主從架構5. 【Redis主從架構】搭建一個一主一從的Redis主從架構
【Redis主從架構】搭建一個一主一從的Redis主從架構5. 【Redis主從架構】搭建一個一主一從的Redis主從架構

2.2.3 設定從節點隻讀

基于主從複制架構,實作讀寫分離

在slave node配置隻讀:

# 配置隻讀(我用的的redis-5.x版本,redis-3.x版本配置為:slave-read-only yes)
replica-read-only yes
           
【Redis主從架構】搭建一個一主一從的Redis主從架構5. 【Redis主從架構】搭建一個一主一從的Redis主從架構

開啟了隻讀的redis slave node,會拒絕所有的寫操作,這樣可以強制搭建讀寫分離的架構

2.2.4 叢集安全認證

master node上啟用安全認證,requirepass

# 開啟安全認證
requirepass foobared
           
【Redis主從架構】搭建一個一主一從的Redis主從架構5. 【Redis主從架構】搭建一個一主一從的Redis主從架構

slave node上設定連接配接密碼:

masterauth foobared
           
【Redis主從架構】搭建一個一主一從的Redis主從架構5. 【Redis主從架構】搭建一個一主一從的Redis主從架構

2.2.5 防止意外,放開6379端口

iptables -A INPUT -ptcp --dport  6379 -j ACCEPT
           

2.2.6 主從架構測試

啟動主從節點,進入指令行:

redis-cli -h ipaddr
           

執行指令,檢視其他節點資訊:

info replication
           

在主上寫,在從上讀

  • 從節點
【Redis主從架構】搭建一個一主一從的Redis主從架構5. 【Redis主從架構】搭建一個一主一從的Redis主從架構
  • 主節點
【Redis主從架構】搭建一個一主一從的Redis主從架構5. 【Redis主從架構】搭建一個一主一從的Redis主從架構
  • 測試,主節點寫一條資料,看能否從從節點擷取到資料
  • Slave節點一連接配接到Master節點的時候,就會将Master節點的資料複制到slave節點。
參考 石衫老師 《億級流量教程》課程筆記

繼續閱讀