集群版本和環境
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.創建節點目錄
cd /redis/redis-6.0.5
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
bind 192.168.239.143
cluster-enabled yes
cluster-config-file nodes_7001.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes
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
OK
192.168.211.143:7000> get foo
-> Redirected to slot [12182] located at 192.168.239.147:7000
"bar"
192.168.239.147:7000> get hello
-> Redirected to slot [866] located at 192.168.211.143:7000
"world"
從結果可以看出來,創建的鍵被分配到了不同節點的slots中,說明了集群運行正常。