Redis的集群搭建

目录

Redis集群搭建

Redis集群(Redis Cluster)是Redis官方提供的分布式部署方案,通过将数据自动分片(hash slot)到多个主节点实现横向扩展,每个主节点可配备从节点实现故障自动转移;它采用去中心化架构,所有节点通过Gossip协议相互通信,客户端可直连任意节点进行路由,并且支持在部分节点故障或网络分区时继续提供服务,是应对海量数据和高并发场景的官方原生分布式解决方案。

Redis集群搭建

首先在/usr/local/src/redis 下创建集群目录和各个节点的日志与数据目录

mkdir -p ./redis-cluster/700{1..6}/{logs,data}

然后赋予权限

chmod 777 -R ./redis-cluster

Redis Cluster 节点的核心配置是 cluster-enabled yes(开启集群模式),下面用脚本批量生成 7001~7006 集群节点的配置文件,可一次性复制到命令行中运行,也可以编写到 redis.conf 中:

# 定义基础目录
BASE_DIR="/usr/local/src/redis/redis-cluster"
mkdir -p ${BASE_DIR}/700{1..6}/{logs,data}  

# IP获取:只取第一个非127.0.0.1的IPv4地址
IP=`ip a|grep 'inet' |grep -v '127.0.0.1'|grep -v 'inet6'|awk '{print $2}'|awk -F'/' '{print $1}'|head -n1`
for i in {1..6}
do
cat > ${BASE_DIR}/700${i}/redis.conf <<EOF
daemonize yes 
port 700${i} 
cluster-enabled yes 
cluster-config-file cluster-nodes-700${i}.conf
cluster-node-timeout 15000
appendonly yes
bind ${IP}
protected-mode no
dbfilename dump-700${i}.rdb
logfile ${BASE_DIR}/700${i}/logs/redis.log
pidfile ${BASE_DIR}/700${i}/data/redis.pid
dir ${BASE_DIR}/700${i}/data
appendfilename "appendonly-700${i}.aof"
EOF
done

进入 /usr/local/src/redis/redis-cluster 目录下启动所有节点

for i in {1..6}; do
/usr/local/src/redis/redis-5.0.4/src/redis-server ./700${i}/redis.conf
done

检查启动状态

执行初始化集群命令

我的redis-cli放在/usr/local/src/6379/bin/目录下

/usr/local/src/6379/bin/redis-cli --cluster create 172.18.23.31:7001 172.18.23.31:7002 172.18.23.31:7003 172.18.23.31:7004 172.18.23.31:7005 172.18.23.31:7006 --cluster-replicas 1

/usr/local/src/redis/redis-5.0.4/src/redis-cli:Redis 客户端程序的绝对路径,是执行集群管理的入口;

–cluster:表示以集群管理模式运行 redis-cli,而非普通的连接模式;

create:–cluster模式下的核心子命令,含义是创建一个新的 Redis 集群;

172.25.49.72:7001 … 172.25.49.72:7006:指定加入集群的所有节点,必须是已启动且配置了cluster-enabled yes 的节点;

–cluster-replicas 1:用于指定每个主节点对应的从节点数量。

需要注意的是从前面的 ps 命令输出可以看到,Redis 节点绑定的是内网 IP 172.25.49.72,而不是默认的 127.0.0.1,这意味着 Redis 服务只监听在这个内网 IP 上,所以用 127.0.0.1 去连接会被拒绝,需要使用绑定的是内网 IP 地址。

验证主从关系是否建立,使用集群模式连接7001节点:

/usr/local/src/6379/bin/redis-cli -c -h 172.18.23.31 -p 7001

cluster nodes 用于查询集群结点信息

cluster info 用于查询集群状态信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值