CentOS Redis cluster 高可用架构篇
编写日期:2017-07-19
编写作者:mtsbv110
主机规划:192.168.9.151
Redis版本:redis-3.2.8.tar.gz
安装目录:/usr/local/redis
主机规划:192.168.9.152
Redis版本:redis-3.2.8.tar.gz
安装目录:/usr/local/redis
主机规划:192.168.9.153
Redis版本:redis-3.2.8.tar.gz
安装目录:/usr/local/redis
Redis 集群搭建
主机名 IP地址 服务端口 集群端口 主/从
jetsen-redis-01 192.168.9.151 7111 17111 Master
jetsen-redis-02 192.168.9.152 7114 17114 Slave
jetsen-redis-02 192.168.9.152 7113 17113 Master
jetsen-redis-01 192.168.9.151 7112 17112 Slave
jetsen-redis-03 192.168.9.153 7115 17115 Master
jetsen-redis-03 192.168.9.151 7116 17116 Slave
- 创建集群数据存放目录
[[email protected]~]# mkdir -p /usr/local/redis/cluster/7111
[[email protected]~]# mkdir -p /usr/local/redis/cluster/7112
[[email protected] ~]# mkdir -p /usr/local/redis/cluster/7113
[[email protected] ~]# mkdir -p /usr/local/redis/cluster/7114
[[email protected] ~]# mkdir -p /usr/local/redis/cluster/7115
[[email protected] ~]# mkdir -p /usr/local/redis/cluster/7116
- 创建集群日志存放目录
[[email protected]~]# mkdir -p /usr/local/redis/cluster/7111/log
[[email protected]~]# mkdir -p /usr/local/redis/cluster/7112/log
[[email protected] ~]# mkdir -p /usr/local/redis/cluster/7113/log
[[email protected] ~]# mkdir -p /usr/local/redis/cluster/7114/log
[[email protected] ~]# mkdir -p /usr/local/redis/cluster/7115/log
[[email protected] ~]# mkdir -p /usr/local/redis/cluster/7116/log
- 创建集群配置文件存放目录
[[email protected] ~]# mkdir -p /usr/local/redis/cluster/7111/conf/
[[email protected] ~]# mkdir -p /usr/local/redis/cluster/7112/conf/
[[email protected] ~]# mkdir -p /usr/local/redis/cluster/7113/conf/
[[email protected] ~]# mkdir -p /usr/local/redis/cluster/7114/conf/
[[email protected] ~]# mkdir -p /usr/local/redis/cluster/7115/conf/
[[email protected] ~]# mkdir -p /usr/local/redis/cluster/7116/conf/
- 配置文件修改
- daemonize yes
设置为守护进程
- pidfile /var/run/redis_7111.pid
指定pidfile
- databases 1
默认16
- cluster-enabled yes
开启集群模式
- cluster-config-file /usr/local/redis/cluster/7111/conf/nodes.conf
集群配置文件,启动自动生成,不用人为干预
- cluster-node-timeout 15000
结点互联超时时间 单位毫秒
- cluster-migration-barrier 1
数据迁移副本临界数,一个主结点拥有对个从结点的情况下,就要割让一个从结点给另外一个没有任何从结点的主结点
- cluster-require-full-coverage yes
如果某一些key space 没有被集群任何结点覆盖,则停止接受写入
- appendonly yes
开启AOF
- dir /usr/local/redis/cluster/7111
- logfile "/usr/local/redis/cluster/7111/log/7001.log"
- bind 192.168.9.151
- port 7111
同理准备另外5份配置文件,上载到服务器对应的
/usr/local/redis/cluster/711X/conf/目录中
- 安装安装ruby 和 rubygems
yum install -y ruby
yum install -y rubygems
gem install redis
- 准备启动脚本
- 复制redis启动脚本到/etc/rc.d/init.d目录中,修改名称为redis_7111
cp /usr/local/src/redis3.0/utils/redis_init_script
/etc/rc.d/init.d/redis_7111
- REDISPORT=7111
- EXEC=/usr/local/redis/bin/redis-server
- CLIEXEC=/usr/local/redis/bin/redis-cli
- PIDFILE=/var/run/redis_${REDISPORT}.pid
- CONF="/usr/local/redis/cluster/${REDISPORT}/conf/redis-${REDISPORT}.conf"
- $EXEC $CONF &
将对应的脚本分别上传到对应结点的目录中
- 执行Redis集群创建命令
- 拷贝redis-trib.rb(只需要值一个结点拷贝即可)
[[email protected] src]#
cp /usr/local/src/redis3.0/src/redis-trib.rb /usr/local/bin/
- 启动相应结点的Redis
[[email protected] ~]# /etc/rc.d/init.d/redis_7111 start
[[email protected] ~]# /etc/rc.d/init.d/redis_7112 start
[[email protected] ]# /etc/rc.d/init.d/redis_7113 start
[[email protected] ]# /etc/rc.d/init.d/redis_7114 start
[[email protected]]# /etc/rc.d/init.d/redis_7115 start
[[email protected]]# /etc/rc.d/init.d/redis_7116 start
- 执行创建命令
[[email protected] ~]# redis-trib.rb create --replicas 1 192.168.9.151:7111 192.168.9.151:7112 192.168.9.152:7113 192.168.9.152:7114 192.168.9.153:7115 192.168.9.153:7116
检查集群信息
[[email protected] ~]# redis-trib.rb check 192.168.9.151:7111
[[email protected] ~]# redis-cli -h 192.168.9.151 -c -p 7111 cluster nodes
[[email protected] ~]# redis-cli -h 192.168.9.151 -c -p 7111