redis-cluster模式集羣部署

前言

一組Redis Cluster是由多個Redis實例組成,官方推薦使用6實例,其中3個爲主節點,3個爲從節點。一旦有主節點發生故障的時候,Redis Cluster可以選舉出對應的從結點成爲新的主節點,繼續對外服務,從而保證服務的高可用性,本文使用兩臺虛擬機添加6塊網卡,充當3主3從。

實驗環境

IP地址分配如下

主機名 IP地址
主服務器 192.168.7.128,192.168.7.130,192.168.7.131
從服務器 192.168.7.129,192.168.7.132,192.168.7.133

實驗過程

1、安裝redis
(1)安裝環境包

[root@localhost ~]# yum install gcc gcc-c++ make -y

(2)編譯安裝redis

[root@localhost redis]# tar zxvf redis-5.0.7.tar.gz -C /opt
[root@localhost redis]# cd /opt/redis-5.0.7/
[root@localhost redis-5.0.7]# make
[root@localhost redis-5.0.7]# make PREFIX=/usr/local/redis/ install

(3)配置redis

[root@localhost redis-5.0.7]# cd utils/
[root@localhost utils]# ./install_server.sh
Please select the redis port for this instance: [6379] 
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf] 
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log] 
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379] 
Selected default - /var/lib/redis/6379
Please select the redis executable path [] /usr/local/redis/bin/redis-server

[root@localhost utils]# ln -s /usr/local/redis/bin/* /usr/local/bin/

2、redis集羣配置
(1)在所有節點上配置

註釋掉 bind項,redis中bind選項默認監聽所有網卡
//關閉保護模式
protected-mode no			
port 6379
#以獨立進程啓動
daemonize yes				
#開啓羣集功能
cluster-enabled yes			
#羣集名稱文件設置
cluster-config-file nodes-6379.conf	
#羣集超時間設置
cluster-node-timeout 15000		
#開啓aof持久化
appendonly yes			

#重啓服務
[root@localhost ~]# /etc/init.d/redis_6379 restart	
正常啓動後,在/var/lib/redis/6379/目錄下會多出兩個文件
appendonly.aof:持久化文件
node-6379.conf:節點首次啓動生成的配置文件

(2)在master上配置(此過程使用的是線網安裝,需要時間較長)

#導入key文件
[root@localhost ~]# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
#安裝rvm
[root@localhost ~]# curl -sSL https://get.rvm.io | bash -s stable
#打開下面網址,將腳本複製到/opt目錄下,執行
https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer
#執行環境變量
[root@localhost ~]# source /etc/profile.d/rvm.sh
#列出Ruby可安裝的版本
[root@localhost ~]# rvm list known
#安裝Ruby2.4.1版本
[root@localhost ~]# rvm install 2.4.1
#使用Ruby2.4.1版本
[root@localhost ~]# rvm use 2.4.1
#查看當前Ruby2.4.1版本
[root@localhost ~]# ruby -v
#再次安裝redis
[root@localhost ~]# gem install redis

(3)創建集羣

[root@localhost ~]# redis-cli --cluster create 192.168.7.128:6379 192.168.7.130:6379 192.168.7.131:6379 192.168.7.129:6379 192.168.7.132:6379 192.168.7.133:6379 --cluster-replicas 1

在羣集上,寫入的數據會隨機保存到另一個地址節點上,數據刪除也會同步刪除
在從服務器上,無法創建和查看數據具體內容
在主服務器上可隨意創建

[root@localhost ~]# redis-cli -h 192.168.7.128 -p 6379
192.168.7.128:6379> set people lisi
OK
192.168.7.128:6379> quit
[root@localhost ~]# redis-cli -h 192.168.7.129 -p 6379
192.168.7.129:6379> get people
(error) MOVED 6247 192.168.7.128:6379
192.168.7.129:6379> quit 
[root@localhost ~]# redis-cli -h 192.168.7.130 -p 6379
192.168.7.130:6379> get people
"lisi"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章