redis 多主多从集群搭建

多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特性。Redis集群不需要sentinel哨兵也能完成节点移除和故障转移的功能。需要将每个节点设置成集群模式,这种集群模式没有中心节点,可水平扩展
redis集群需要至少要三个master节点,我们这里搭建三个master节点,并且给每个master再搭建一个slave节点,总共6个redis节点构成三主三从

单节点安装启动
  • 单节点基本安装如下,官方文档
$ yum install -y gcc 
$ wget http://download.redis.io/releases/redis-5.0.5.tar.gz
$ tar xzf redis-5.0.5.tar.gz
$ cd redis-5.0.5
$ make
  • 启动,停止
$ src/redis-server
$ src/redis-cli shutdown/ kill ...
集群搭建

redis 多节点启动 使用 ./redis-server xxxx.conf 指定不同的配置文件即可

  • 准备3台服务器, 每台服务器启动 6379/6380 两个节点
  • 修改 /usr/local/redis/redis.conf 配置如下
daemonize yes
port 6379(分别对每个机器的端口号进行设置)
dir /usr/local/redis/(指定数据文件存放位置)
cluster-enabled yes(启动集群模式)
cluster-config-file nodes-6379.conf(集群节点信息文件)
cluster-node-timeout 5000
bind 127.0.0.1(注释)
protected-mode no  (关闭保护模式)
appendonly yes  (开启aof日志)
requirepass xxx (设置redis访问密码)
masterauth xxx (设置集群节点间访问密码,跟上面一致即可)
  • 复制 上面的 redis.conf 到另一个目录 如/usr/local/redis-6380 修改如下
daemonize yes
port 6380(分别对每个机器的端口号进行设置)
dir /usr/local/redis-6380/(指定数据文件存放位置)
cluster-enabled yes(启动集群模式)
cluster-config-file nodes-6380.conf(集群节点信息文件)
cluster-node-timeout 5000
bind 127.0.0.1(注释)
protected-mode no  (关闭保护模式)
appendonly yes  (开启aof日志)
requirepass xxx (设置redis访问密码)
masterauth xxx (设置集群节点间访问密码,跟上面一致即可)
  • 使用 ./redis-server xxx.conf 启动两个节点
./src/redis-server redis.conf
./src/redis-server ../redis-6380/redis.conf
  • 如下脚本可以停止服务

#!/bin/bash
#根据进程名杀死进程
if [ $# -lt 1 ]
then
  echo "缺少参数:procedure_name"
  exit 1
fi

PROCESS=`ps -ef|grep $1|grep -v grep|grep -v PPID|awk '{ print $2}'`
for i in $PROCESS
do
  echo "Kill the $1 process [ $i ]"
  kill -9 $i
done
  • 复制 redis 和 redis-6780 目录到 另外两台机器上, 然后启动
scp -r /usr/local/redis/ root@ip:/usr/local/
scp -r /usr/local/redis-6380/ root@ip:/usr/local/
  • 使用 ps -ef|grep redis 在3台机器上测试是否全部启动成功

  • 使用 redis-cli 进行集群 如下

./src/redis-cli -a hzhl --cluster create --cluster-replicas 1 192.168.0.150:6379 192.168.0.150:6380 192.168.0.151:6379 192.168.0.151:6380 192.168.0.152:6379 192.168.0.152:6380

  • 如果集群失败,需要删除 每个节点 .aof/node-port.conf 等集群信息

  • 登陆任意节点

redis-cli --cluster check  ip:port  -a  密码 查看集群状态
./redis-cli -c -h {IP} -p {PORT}  # -c 表示连接集群节点
 cluster info(查看集群信息)、cluster nodes(查看节点列表)

如图
  • 新增节点
    参考文献

你可能感兴趣的:(redis 多主多从集群搭建)