redis集群部署详细教程

本文详细介绍了如何在6.2.6版本的Redis中搭建集群,包括上传安装包、编译、配置文件修改、启动节点、创建集群、设置密码等步骤,重点强调了数据分区、主从复制和故障恢复机制。

Redis集群是Redis官方在3.0版本推出的一套分布式存储方案,完全去中心化,由多个节点组成,所有节点彼此互联。Redis客户端可以直接连接任何一节点获取集群中的键值对,不需要中间代理。如果该节点不存在用户所指定的键值,其内部会自动把客户端重定向到键值所在的节点。

Redis集群是一个网状结构,每个节点都通过TCP连接跟其他每个节点连接。在一个有N个节点的集群中,每个节点都有N-1个流出的TCP连接,和N-1个流入的连接,这些TCP连接会永久保持。

Redis集群主要具备以下两个功能:

数据分区:Redis集群会将用户数据分散保存至各个节点中,突破单机Redis内存最大存储容量。集群引入了哈希槽的概念,搭建完成后会生成16384个哈希槽,同时会根据节点的数量大致均等的将16384个哈希槽映射到不同的节点上。
数据冗余:Redis集群支持主从复制和故障恢复。集群使用了主从复制模型,每个主节点应至少有一个从节点。假设某个主节点故障,其所有子节点会广播一个数据包给集群里的其他主节点来请求选票,一旦某个从节点收到了大多数主节点的回应,那么它就赢得了选举,被推选为主节点,负责处理之前旧的主节点负责的哈希槽。


一: 将安装包上传到服务器然后解压(以6.2.6版本为例)
tar -xvf redis-6.2.6.tar.gz
二:编译redis
make

安装编译后的redis代码到指定目录

make install PREFIX=/home/redis  #/home/redis可以自己指定
三:创建redis各实例目录
mkdir -p /home/redis/cluster 

cd /home/redis/cluster 

mkdir conf data log pig 

mkdir -p data/redis-6379 data/redis-6380 
四:修改配置文件(redis.conf)

复制 redis.conf到 cluster/conf分别命名为redis-6379.conf、redis-6380.conf

修改conf配置:

1 # redis后台运行

2 daemonize yes

3 # 绑定的主机端口

4 bind 主机外网ip地址

5 # 数据存放目录

6 dir /home/redis/cluster/data/redis‐${自定义}

7 # 进程文件

8 pidfile /var/run/redis‐cluster/${自定义}.pid

9 # 日志文件

10 logfile /home/redis/cluster/log/${自定义}.log

11 # 端口号

12 port 6379

13 # 开启集群模式,把注释#去掉

14 cluster‐enabled yes

15 # 集群的配置,配置文件首次启动自动生成

16 cluster‐config‐file /home/redis/cluster/conf/${自定义}.conf

17 # 请求超时,设置10秒

18 cluster‐node‐timeout 10000

19 # aof日志开启,有需要就开启,它会每次写操作都记录一条日志

20 appendonly yes

21 关闭rdb, rdb开启,有需要就开启

# save 900 1

# save 300 10

# save 60 10000

22 将notify-keyspace-events “” 设置为如下内容

notify-keyspace-events “Ex”

23 cluster-require-full-coverage默认为yes,一个节点挂掉后会导致整个集群都不可用,需要将配置改为no

cluster-require-full-coverage no

五:启动节点

在每台主机上执行

/home/redis/bin/redis-server /opt/redis/cluster/conf/redis-6381.conf
/home/redis/bin/redis-server /opt/redis/cluster/conf/redis-6382.conf

端口需要开启:6379 6380 16379 16380

开放端口命令:firewall-cmd --add-port=16379/tcp --permanent

六:启动集群(最少六个节点)

这里的ip以及端口填写实际部署的信息

/home/redis/bin/redis-cli --cluster create ip:6381 ip:6382 ip:6383 ip:6384 ip:6385 ip:6386 --cluster-replicas 1

出现如下类似信息,表示启动成功

>>> Performing hash slots allocation on 6 nodes…

Master[0] -> Slots 0 - 5460

Master[1] -> Slots 5461 - 10922

Master[2] -> Slots 10923 - 16383

Can I set the above configuration? (type ‘yes’ to accept): yes

>>> Nodes configuration updated

>>> Assign a different config epoch to each node

>>> Sending CLUSTER MEET messages to join the cluster

Waiting for the cluster to join

[OK] All nodes agree about slots configuration.

>>> Check for open slots…

>>> Check slots coverage…

[OK] All 16384 slots covered.

七:redis设置密码

1、密码设置(推荐)

方式一:修改所有Redis集群中的redis.conf文件加入:

masterauth 密码

requirepass 密码

说明:这种方式需要重新启动各节点

方式二:进入各个实例进行设置:

./redis-cli -c -p 7001 -h 10.10.10.1

config set masterauth 密码

config set requirepass 密码

auth 用户

CONFIG REWRITE

之后分别使用./redis-cli -c -p 7001,./redis-cli -c -p 7002……命令给各节点设置上密码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值