叢集版本和環境
Redis叢集要求至少3個主節點3個從節點,共計6個節點。
作業系統 CentOS 7.4
Redis版本 6.0.5
主節點
192.168.239.143 7000
192.168.239.147 7000
192.168.239.149 7000
從節點
192.168.239.143 7001
192.168.239.147 7001
192.168.239.149 7001
修改系統配置
關閉NetworkManager
[root@localhost ~]# systemctl disable NetworkManager --關閉自啟動
[root@localhost ~]# systemctl stop NetworkManager
[root@localhost ~]# systemctl status NetworkManager
關閉防火牆
systemctl stop firewalld.service
systemctl disable firewalld.service --關閉自啟動
firewall-cmd --state
vi /etc/selinux/config
SELINUX=disabled
安裝依賴包
安裝gcc套裝
yum install -y cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc make
更新gcc
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
設定永久更新
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
建立Redis節點
1.建立Redis目錄并解壓
mkdir /redis
tar xzf redis-6.0.5.tar.gz
2.安裝Redis
cd /redis/redis-6.0.5
make install
3.建立節點目錄
mkdir cluster
cd cluster
mkdir 7000 7001
4.修改Redis配置檔案
以192.168.239.143為例,其他節點步驟相同
将配置檔案拷貝到建立好的端口檔案夾下
cp /redis/redis-6.0.5/redis.config /redis/redis-6.0.5/cluster/7000
cp /redis/redis-6.0.5/redis.config /redis/redis-6.0.5/cluster/7001
每個節點的主從節點都需要配置檔案
主:
port 7000
bind 192.168.239.143
cluster-enabled yes
cluster-config-file nodes_7000.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes
logfile "/redis/redis-6.0.5/cluster/redis_7000.log"
pidfile /var/run/redis_7000.pid
從:
port 7001
cluster-config-file nodes_7001.conf
logfile "/redis/redis-6.0.5/cluster/redis_7001.log"
pidfile /var/run/redis_7001.pid
5.啟動Redis節點服務
redis-server /redis/redis-6.0.5/cluster/7000/redis.conf
redis-server /redis/redis-6.0.5/cluster/7001/redis.conf
建立Redis叢集
目前為止,我們已經建立了Redis節點并且啟動服務,接下來就要建立Redis叢集了。在Redis 6中,使用redis-cli指令來建立,其中--cluster-replicas 1的意思是每個主節點需要1個從節點。
例如:
redis-cli --cluster create 192.168.239.143:7000 192.168.239.147:7000 \
192.168.239.149:7000 192.168.239.143:7001 192.168.239.147:7001 \
192.168.239.149:7001 --cluster-replicas 1
我們最初的目标是建立3個主節點加3個從節點的叢集,顯然這條指令并沒有指定哪些主哪些是從,其實在執行後,Redis會建議主從節點的配置設定,M表示主(Master)節點,S表示從(Slave)節點,你隻要選擇yes即可。
驗證Redis叢集
redis-cli -c -h 192.168.239.143 -p 7000
192.168.239.143:7000> set foo bar
-> Redirected to slot [12182] located at 192.168.239.147:7000
OK
192.168.239.147:7000> set hello world
-> Redirected to slot [866] located at 192.168.211.143:7000
192.168.211.143:7000> get foo
"bar"
192.168.239.147:7000> get hello
"world"
從結果可以看出來,建立的鍵被配置設定到了不同節點的slots中,說明了叢集運作正常。