您的位置:首页 > 数据库 > Redis

Centos 7/8 部署Redis Cluster

2020-07-27 16:35 357 查看

Redis集群介绍

redis集群是一个多Redis实例的集合,用于通过对数据库分区来扩展数据库,使其更具有弹性。如果一个主服务器出现不能访问的故障,那么它的Slave从属服务器会提升为Master主服务器。

Redis集群没有使用一致的散列,而是一种不同的分片形式,其中每个 key 在概念上都是我们称之为散列槽的部分。

Redis客户端任意访问一个redis实例,如果数据不在该实例中,通过重定向引导客户端访问所需要的redis实例。

Redis在5.0之后取消了redis-trib.rb来启用Cluster,集成到redis-cli中,避免了再安装ruby相关环境,直接使用redis-cli --cluster来启用Cluster。

 

在由三个主节点组成的最小的Redis集群中,每个主节点都有一个从属节点(为了至少能保证最低程度的故障转移),每个主节点分配一个范围在0至16383之间的哈希槽。节点1包含哈希槽范围为从0到5000,节点2为5001到10000,节点3从10001到18383。集群内部的通信则通过内部总线进行,使用gossip协议来传播关于集群的信息或者发现新节点。

一个主节点对应一个或多个从节点,主节点提供数据存取,从节点则是从主节点拉取数据备份,当这个主节点挂掉后,就会有这个从节点选取一个来充当主节点,从而保证集群不会挂掉

上图中的Redis集群有M1 M2 M3三个主节点, 如果这3个节点都没有加入从节点,如果M1挂掉了,我们就无法访问整个集群了。

所以创建Redis集群时一定要为每个主节点都添加从节点,例如Redis集群包含主节点M1、M2、M3以及从节点S1、S2、S3, 那么即使M1挂掉系统也可以继续正确工作。

 

安装Redis

建议安装最新版本redis,参考文章: https://blog.csdn.net/coco3848/article/details/107605687

 

启用Redis Cluster

修改redis配置文件 /etc/redis.conf

[code]bind 0.0.0.0
port 6379
daemonize yes
dir /var/lib/redis
dbfilename dump.rdb
logfile /var/log/redis/redis.log
cluster-enabled yes   # 开启集群模式
cluster-config-file nodes.conf  # 集群内部的配置文件
cluster-migration-barrier 1   # Default is 1
cluster-require-full-coverage no  #redis cluster需要16384个slot都正常的时候才能对外提供服务,换句话说,只要任何一个slot异常那么整个cluster不对外提供服务。 因此生产环境一般为no

修改配置后启动redis服务

[code]systemctl enable --now redis

创建redis cluster,在任意节点上执行即可

[code]# cluster-replicas 表示每个主节点需要1个从节点。
# 前三个节点自动配置为主节点,后三个节点自动配置为从节点。
redis-cli --cluster create node01-ip:6379 node02-ip:6379 node03-ip:6379 ode04-ip:6379 node05-ip:6379 node06-ip:6379 --cluster-replicas 1

查看redis cluster

[code]$ redis-cli --cluster info 127.0.0.1:6379

127.0.0.1:6379 (92f536b6...) -> 0 keys | 5461 slots | 1 slaves.
10.1.1.2:6379 (af0bfd8b...) -> 0 keys | 5462 slots | 1 slaves.
10.1.1.3:6379 (d9461589...) -> 0 keys | 5461 slots | 1 slaves.
[OK] 0 keys in 3 masters.
0.00 keys per slot on average.

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: