【Redis】--- 集群

本文介绍了Redis从单机到高可用集群的演进过程,包括主从架构、哨兵模式、CODIS模式和高可用集群模式。重点讲述了Redis集群的搭建步骤,涉及配置文件修改、端口分配、数据分片等,并提供了详细的集群创建和验证方法。
摘要由CSDN通过智能技术生成


前言

【Redis】— 不同数据结构命令

集群演变

单机架构


如果Redis宕机,数据没做好持久化,数据会丢失。

主从架构

相对于单节点,做了主从同步备份,数据安全性上有了一定程度的提高,但是主节点和从节点的切换还需要运维做的切换。
在这里插入图片描述

哨兵模式

相对于主从模式,哨兵模式,哨兵模块来监控Redis集群,当主节点宕机,哨兵会通过选举,选出新的主节点,自动做主从切换。

哨兵模式客户端访问Redis的步骤为:

  1. 客户端访问哨兵集群,哨兵返回目前Redis集群主节点IP
  2. 客户拿到主节点IP,访问主节点。

缺点:

  1. 一台Redis的理想状态并发为10万,哨兵模式只有一个主节点对外提供服务,没法支持很高的并发
  2. 内存也有限制(单台8~16)。内存也不宜设置得过大,否则会导致持久化文件过大,影响数据恢复或主从同步的效率。
  3. 主从切换的瞬间存在访问瞬断;
    在这里插入图片描述

CODIS模式

使用中间件,将多个主从的Redis 集群管理,对key进行算法计算,分片存储在不同的主从小集群中。需要借助ZooKeeper.
Codis的原理以及部署—— CODIS (分布式 Redis 解决方案)
在这里插入图片描述

高可用集群模式

相较哨兵模式的性能缺点,高可用做了弥补。并且不需要使用中间件。

redis集群是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特性。Redis集群不需要sentinel哨兵也能完成节点移除和故障转移的功能。需要将每个节点设置成集群模式,这种集群模式没有中心节点,可水平扩展,据官方文档称可以线性扩展到上万个节点(官方推荐不超过1000个节点)

在这里插入图片描述

集群搭建

redis集群需要至少要三个master节点
【Redis】— Linux安装Redis,集群安装整体和单机安装类似,集群其实就是根据不同的Redis配置文件,启动不同Redis实例,建立一个集群。

相比单机,集群模式配置不同。

  • 集群端口,配置为每个实例单独的端口
  • redis.config文件中cluster-enabled 配置为 yes(启动集群模式)
  • cluster-config-file 配置对应实例的文件地址(这里存放集群信息文件)
  • cluster-node-timeout集群节点超时时间

配置完成之后,分别启动每个redis实例。然后用redis-cli创建整个redis集群。
./redis-cli –cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002


三台机器部署6个redis实例,每台机器一主一从,搭建集群的步骤如下:

  • 在第一台机器的/usr/local下创建文件夹redis-cluster,然后在其下面分别创建2个文件夾如下
    (1)mkdir -p /usr/local/redis-cluster
    (2)mkdir 8001、 mkdir 8004

  • 把之前的redis.conf配置文件copy到8001下,修改如下内容:
    (1)daemonize yes
    (2)port 8001(分别对每个机器的端口号进行设置)
    (3)dir /usr/local/redis-cluster/8001/(指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据)
    (4)cluster-enabled yes(启动集群模式)
    (5)cluster-config-file nodes-8001.conf(集群节点信息文件,这里800x最好和port对应上)
    (6)cluster-node-timeout 5000
    (7) # bind 127.0.0.1(去掉bind绑定访问ip信息)
    (8) protected-mode no (关闭保护模式)
    (9)appendonly yes
    如果要设置密码需要增加如下配置:
    (10)requirepass 123456 (设置redis访问密码)
    (11)masterauth 123456 (设置集群节点间访问密码,跟上面一致)

  • 把修改后的配置文件,copy到8002,修改第2、3、5项里的端口号

  • 另外两台机器也需要做上面几步操作,第二台机器用8002和8005,第三台机器用8003和8006

  • 分别启动6个redis实例,然后检查是否启动成功
    (1)/usr/local/redis-5.0.2/src/redis-server /usr/local/redis-cluster/800*/redis.conf
    (2)ps -ef | grep redis 查看是否启动成功

  • 用redis-cli创建整个redis集群
    (1)/usr/local/redis-5.0.2/src/redis-cli -a 123456 --cluster create --cluster-replicas 1 192.168.0.61:8001 192.168.0.62:8002 192.168.0.63:8003 192.168.0.61:8004 192.168.0.62:8005 192.168.0.63:8006 代表为每个创建的主服务器节点创建一个从服务器节点

  • 验证集群
    (1)连接任意一个客户端即可:./redis-cli -c -h -p (-a访问服务端密码,-c表示集群模式,指定ip地址和端口号)如:/usr/local/redis-5.0.2/src/redis-cli -a 123456 -c -h 192.168.0.61 -p 800*
    (2)进行验证: cluster info(查看集群信息)、cluster nodes(查看节点列表)
    (3)进行数据操作验证
    (4)关闭集群则需要逐个进行关闭,使用命令:
    /usr/local/redis/bin/redis-cli -a 123456 -c -h 192.168.0.60 -p 800* shutdown

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Abner G

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值