上一篇文章Redis的持久化你還不知道呢吧?(五),給大家簡單介紹了一些關於Redis持久化的內容,這篇呢給大家普及一下Redis的主從複製架構!!!!!!
Redis的主從複製架構
解決IT行業讀寫瓶頸的終級解決方案
讀寫分離
將讀取的操作和寫入的操作完全物理分割開。
1、 多個節點讀寫分離:例如1、2、3節點負責數據寫入,4、5、6負責數據讀取。
2、 單節點多磁盤的讀寫分離:例如一個節點內1、2、3磁盤負責數據寫入,4、5、6磁盤負責數據讀取。
涉及到讀寫分離就會涉及到讀取和寫入數據的同步
在Redis中,用戶可以通過執行SLAVEOF命令或者設置slaveof選項,讓一個服務器去複製(replicate)另一個服務器,我們稱呼被複制的服務器爲主服務器(master),而對主服務器進行復制的服務器則被稱爲從服務器(slave),如圖所示。
使用主從複製這種模式,實現node01作爲主節點,node02與node03作爲從節點,並且將node01所有的數據全部都同步到node02與node03服務器
第一步:node02與node03服務器安裝redis
node02與node03執行以下命令安裝依賴環境
yum -y install gcc-c++
node02與node03上傳redis壓縮包
在node02與node03服務器上面上傳redis壓縮包,然後進行解壓
將安裝包上傳到/export/softwares路徑下
cd /export/softwares
tar -zxvf redis-3.2.8.tar.gz -C ../servers/
node02與node03服務器安裝tcl
node02與node03服務器執行以下命令在線裝TCL
yum -y install tcl
node02與node03服務器編譯redis
node02與node03執行以下命令進行編譯redis
執行以下命令進行編譯:
cd /export/servers/redis-3.2.8/
使用命令 make 進行編譯
make && make install
node02與node03服務器修改redis配置文件
node02服務器修改配置文件命令如下
執行以下命令修改redis配置文件
cd /export/servers/redis-3.2.8/
mkdir -p /export/servers/redis-3.2.8/logs
mkdir -p /export/servers/redis-3.2.8/redisdata
vim redis.conf
bind node02
daemonize yes
pidfile /var/run/redis_6379.pid
logfile "/export/servers/redis-3.2.8/logs/redis.log"
dir /export/servers/redis-3.2.8/redisdata
slaveof node01 6379
node03服務器修改配置文件命令如下
執行以下命令修改redis配置文件
cd /export/servers/redis-3.2.8/
mkdir -p /export/servers/redis-3.2.8/logs
mkdir -p /export/servers/redis-3.2.8/redisdata
vim redis.conf
bind node03
daemonize yes
pidfile /var/run/redis_6379.pid
logfile "/export/servers/redis-3.2.8/logs/redis.log"
dir /export/servers/redis-3.2.8/redisdata
slaveof node01 6379
第二步、啓動node02與node03機器的redis服務
node02執行以下命令啓動redis服務
cd /export/servers/redis-3.2.8/src
redis-server ../redis.conf
node03執行以下命令啓動redis服務
cd /export/servers/redis-3.2.8/src
redis-server ../redis.conf
啓動成功便可以實現redis的主從複製,node01可以讀寫操作,node02與node03只支持讀取操作。
此方案存在什麼問題?
若主節點宕機,將無法寫數據到redis。
如何解決呢?
接下來給大家更新一篇Redis的哨兵機制!