一、主机规划
单主机多实例
主机IP地址:192.168.66.100、192.168.66.101、192.168.66.102
Linux版本:CentOS 7
redis版本:redis-5.0.7
安装方式:二进制安装
集群架构方式:三主三从
master1:
IP地址192.168.66.100 端口:6379
master2:
IP地址192.168.66.101 端口:6379
master3:
IP地址192.168.66.102 端口:6379
node1:
IP地址192.168.66.100 端口:6380
node2:
IP地址192.168.66.101 端口:6380
node3:
IP地址192.168.66.102 端口:6380
二、目录规划
redis源码包目录:
mkdir -p /opt/redis_cluster/src
redis安装目录:
mkdir -p /opt/redis_cluster/redis_6379/{conf,logs,pid}
redis数据目录:
mkdir -p /data/redis_cluster/redis_6379
三、安装部署
01.下载源码包
cd /opt/redis_cluster/src
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
02.解压编译安装
tar xf redis-5.0.7.tar.gz -C /opt/redis_cluster/
ln -s /opt/redis_cluster/redis-5.0.7/ /opt/redis_cluster/redis
cd /opt/redis_cluster/redis
make && make install
03.编写主配置文件
vim /opt/redis_cluster/redis_6379/conf/redis_6379.conf
bind 192.168.66.100
port 6379
daemonize yes
pidfile "/opt/redis_cluster/redis_6379/pid/redis_6379.pid"
logfile "/opt/redis_cluster/redis_6379/logs/redis_6379.log"
dbfilename "redis_6379.rdb"
dir "/data/redis_cluster/redis_6379/"
save 900 1
save 300 10
save 60 10000
cluster-enabled yes
cluster-config-file nodes_6379.conf
cluster-node-timeout 15000
其他五个节点可以复制主配置文件,修改IP地址、端口号和数据目录即可
04.启动服务
redis-server /opt/redis_cluster/redis_6379/conf/redis_6379.conf
05.查看节点信息
redis-cli -c -h 192.168.66.100 -p 6379 cluster nodes
redis-cli --cluster info 192.168.66.100 6379
redis-cli --cluster check 192.168.66.100 6379
06.集群初始化
redis-cli -h master1 -p 6379 FLUSHALL
redis-cli -h master2 -p 6379 FLUSHALL
redis-cli -h master3 -p 6379 FLUSHALL
redis-cli -h node1 -p 6380 FLUSHALL
redis-cli -h node2 -p 6380 FLUSHALL
redis-cli -h node3 -p 6380 FLUSHALL
redis-cli -h master1 -p 6379 CLUSTER RESET
redis-cli -h master1 -p 6379 CLUSTER RESET
redis-cli -h master1 -p 6379 CLUSTER RESET
redis-cli -h node1 -p 6380 CLUSTER RESET
redis-cli -h node2 -p 6380 CLUSTER RESET
redis-cli -h node3 -p 6380 CLUSTER RESET
07.创建集群
redis-cli --cluster create 192.168.66.200:6379 192.168.66.201:6379 192.168.66.202:6379 192.168.66.200:6380 192.168.66.201:6380 192.168.66.202:6380 --cluster-replicas 1
集群关系拓扑图
image.png
08.写入数据测试
vim for.sh
for i in {1..10000}
do
redis-cli -c -h 192.168.66.100 -p 6379 set k_${i} v_${i}
sleep 1
done
bash for.sh
五、模拟故障转移
image.png01.模拟数据写入
编写脚本
vim redis_write.sh
#!/bin/bash
for i in {1..10000}
do
redis-cli -c -h 192.168.66.100 -p 6379 set k_${i} v_${i}
sleep 1
done
bash for.sh
02.模拟读取数据
vim redis_read.sh
#!/bin/bash
for i in {1..10000}
do
redis-cli -c -h 192.168.66.200 -p 6379 get k_${i}
sleep 1
done
03.模拟故障转移
先执行写入脚本,等待10秒再执行读取脚本。
在数据能正常读写之后,先停掉其中的一个主节点,发现依然能够正常读取数据
接着再次停掉另一个主节点,数据也能正常读写
实验现象说明:在搭建了redis的分布式集群之后,如果其中的一台服务器(节点)发生了故障,架构会自动进行故障转移,不影响数据的读写
网友评论