Redis7.0部署集群怎么实现

Redis7.0部署集群详细版

集群架构是一种将多台计算机通过网络连接起来,并采用统一的管理方式,使其对外表现为单台计算机提供服务的方式

集群的作用:

  • 分散单台服务器的访问压力,实现负载均衡

  • Redis7.0怎么部署集群详细教程来了!

    分散单台服务器的存储压力,实现可扩展性

  • 降低单台服务器宕机带来业务灾难

1、Redis集群内部结构设计

数据存储设计

  • 通过算法设计,计算出key应该保存的位置

  • 将所有的存储空间计划切割成16384份,每台主机保存一部分,每份代表的是一个存储空间,不是一个key的保存空间

  • 将key按照计算出的结果放到对应的存储空间

  • 增强可扩展性(有新的存储空间加入,官方叫做槽)

集群内部通讯设计

  • 各个数据库相互通信,保存各个库中槽的编号数据

  • 一次命中,直接返回

  • 一次未命中,告知具体位置

2、cluster集群内部结构搭建

在虚拟机中启动多个窗口进行集群搭建演示

主要命令在主命令操作客户端执行

修改redis.conf配置文件

添加如下内容

cluster-enabled yes # 启动为节点
cluster-config-file nodes-6379.conf # cluster配置文件名,该文件属于自动生成,仅用于快速查找文件并查询文件内容
cluster-node-timeout 10000 # 节点服务响应超时时间,用于判定该节点是否下线或切换为从节点
cluster-migration-barrier <
count>
# master连接的slave最小数量

快速复制5分配置文件并替换里面的端口

[root@localhost conf]# sed "
s/6379/6380/g"
redis-6379.conf >
redis-6380.conf
[root@localhost conf]# sed "
s/6379/6381/g"
redis-6379.conf >
redis-6381.conf
[root@localhost conf]# sed "
s/6379/6382/g"
redis-6379.conf >
redis-6382.conf
[root@localhost conf]# sed "
s/6379/6383/g"
redis-6379.conf >
redis-6383.conf
[root@localhost conf]# sed "
s/6379/6384/g"
redis-6379.conf >
redis-6384.conf
[root@localhost conf]# sed "
s/6379/6385/g"
redis-6379.conf >
redis-6385.conf

全部执行后可以通过cat指令查看内容确保被修改

启动redis服务集群

# 在第一个窗口执行6379服务
redis-server redis-6379.conf
# 在第二个窗口执行6380服务
redis-server redis-6380.conf
# 在第三个窗口执行6381服务
redis-server redis-6381.conf
# 下面的代码依次类推到6385

执行命令查看redis进程和端口

ps -ef | grep redis-

连接节点

在src目录下查看redis-trib.rb

在高版本中已经将启动操作移动到redis-cli中

启动需要两个下载两个文件分别是ruby和gem

# 下载命令也会将gem一起
yum -y install rubygems

# --cluster create 创建集群
# --cluster-replicas 1 指定集群的内部结构(1代表一个master连接1个slave,2代表一个master连接两个save)
# 后面的连接端口按数量实现master连接哪一个slave,1对1,1对2
redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 --cluster-replicas 1

执行的结果如下

查看配置信息的结果如下

执行yes命令后的信息如下

再次查看配置文件的信息,里面记录这所有集群信息

启动客户端存储数据

因为使用了集群部署,所以通过-c参数可以操作集群,如果不指定的是操作redis命令会提示(error) MOVED 5798 127.0.0.1:6380

注意:-c操作集群

redis-cli -c
# 创建key,通过返回信息可以知道key存储到6380下了
127.0.0.1:6379>
set name 123
->
Redirected to slot [5798] located at 127.0.0.1:6380
OK

指定端口连接客户端

# 连接指定的集群客户端
[root@localhost data]# redis-cli -c -p 6382
# 获取key
127.0.0.1:6382>
get name
->
Redirected to slot [5798] located at 127.0.0.1:6380
"
123"

127.0.0.1:6380>

Cluster节点操作命令

查看集群节点信息

cluster nodes

进入一个从节点 redis,切换其主节点

cluster replicate <
master-id>

发现一个新节点,新增主节点

cluster meet ip:port

忽略一个没有solt的节点

cluster forget <
id>

手动故障转移

cluster failover

redis-trib命令

添加节点

redis-trib.rb add-node

删除节点

redis-trib.rb del-node

重新分片

redis-trib.rb reshard 3、主从下线和主从切换

1、模拟从机下线操作

在从机服务器执行Ctrl + C下载服务

观察连接的主机情况,主机会在10秒内连接不上从机就会标记从机失败,其他集群服务会连接上失败的,其他服务会接收到信息

再次启动从机,主机就会重新连接上从机

如果主机下线了,从机会某槽换位,当主机重新上线的时候,原来的主机就会变成从机



Redis是一个高性能的key-value数据库,广泛应用于大规模数据缓存。为了保证Redis的可靠性和高可用性,我们需要搭建Redis集群。那如何实现Redis7.0的集群呢?下面就让我们一一来看看。
一、概述
Redis7.0集群基于Redis Cluster实现,采用分片技术将数据分散存储到多个节点上,实现负载均衡和高可用性。集群由多个节点共同维护,一个节点挂掉不会影响整个集群的正常运行。其中,Redis Cluster支持最大16384个槽位(slot),每个槽位可以存放一个key-value键值对。
二、部署环境准备
在开始部署前,需要准备好以下环境:
1. 一台或多台虚拟机/物理机,建议选择Linux系统。
2. 每台机器至少2个CPU和2GB内存。
3. 在同一网段内,每台机器需要互相可达。
4. 安装Redis7.0,建议采用源码安装。
三、集群搭建步骤
1. 创建集群配置文件。
在每台机器上创建一个配置文件,命名为redis.conf。可以将原本的redis.conf复制多份,再进行修改配置文件参数,包括端口号、集群名称、节点IP等。
2. 启动集群节点。
在每台机器上使用redis-server命令启动Redis服务。此时,Redis只能作为单机的运行,因为还没有将其加入集群。
3. 初始化集群。
在任意一台机器上,使用redis-cli命令进行初始化。具体命令如下:
redis-cli --cluster create [ip:port] [ip:port] ... [ip:port] --cluster-replicas [num]
其中,[ip:port]填写所有集群节点的IP和端口号,--cluster-replicas [num]表示每个主节点都会有[num]个从节点,默认为1。
4. 加入集群节点。
使用redis-cli命令将其他节点加入集群。需要在连接主节点时指定--cluster参数,将主节点的IP和端口号作为参数传入即可。
5. 集群测试。
可以使用redis-cli命令测试集群的运行情况。例如进行数据读写、主从节点切换等。
四、总结
通过以上步骤,我们就成功地搭建了Redis7.0集群。通过分片技术实现负载均衡和高可用性,提高了Redis在实际应用中的使用效果。希望对你有所启发,感谢阅读。