redis主從集群搭建


redis作為當前炙手可熱的NOSQL系統,本身就支持主從集群,下面我們就來動手搭建一個一主兩從的redis集群。

一、安裝操作

1、環境准備

這里使用三台服務器,每台服務器上開啟一個redis-server和redis-sentinel服務,redis-server端口為8000,redis-sentinel的端口為6800,修改默認端口是安全的第一步。

redis-server說明

  • 192.168.68.110:8000 主
  • 192.168.68.111:8000 從
  • 192.168.68.112:8000 從

redis-sentinel說明

  • 192.168.68.110:6800
  • 192.168.68.111:6800
  • 192.168.68.112:6800

2、搭建redis系統

先在三台機器上安裝redis,具體步驟可參考Linux下redis安裝(單機版)

安裝完成后復制redis提供的默認配置文件

cp /usr/src/redis-3.2.1/redis.conf /usr/local/redis

修改配置文件

cd /usr/local/redis
vim redis.conf

主節點192.168.68.110上的配置

port  8000          
daemonize  yes
bind  192.168.68.110
requirepass 123456
pidfile   /var/run/redis-8000.pid
logfile   /var/log/redis/redis-8000.log

從節點192.168.68.111,192.168.68.112上的配置

port  8000          
daemonize  yes
bind  192.168.68.111  #192.168.68.112
requirepass 123456
masterauth 123456
pidfile   /var/run/redis-8000.pid
logfile   /var/log/redis/redis-8000.log
slaveof  192.168.68.110 8000

注意:redis不會幫我們創建目錄,所以在啟動之前需要創建目錄/var/log/redis

啟動三台機器上的redis

./bin/redis-server ./redis.conf

三個redis服務啟動完畢后,進入命令行,執行info replication查看當前主從配置

如果如上圖所示沒有發現從節點,很有可能是防火牆沒有開放8000端口導致主從節點之間沒法通信

執行以下命令

firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --zone=public --add-port=6800/tcp --permanent
firewall-cmd --reload

重新查看主從信息

3、搭建redis-sentinel系統

首先復制默認的配置文件並修改

cp /usr/src/redis-3.2.1/sentinel.conf /usr/local/redis/
vim /usr/local/redis/sentinel.conf

內容如下

protected-mode no
daemonize yes
port  6800
sentinel monitor mymaster 192.168.68.110 8000 1
sentinel auth-pass mymaster 123456
#5秒內master6800沒有響應,就認為SDOWN
sentinel down-after-milliseconds mymaster 5000  
sentinel failover-timeout mymaster 15000
logfile  /var/log/redis/sentinel.log
pidfile  /var/run/sentinel.pid

啟動redis-sentinel

./bin/redis-sentinel ./sentinel.conf

 

二、測試

1、主從復制測試

主節點添加數據

從節點獲取數據

2、故障轉移測試

停掉主節點

查看redis集群信息

從節點192.168.68.112升級為主節點


免責聲明!

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



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