经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Redis » 查看文章
Redis7.0部署集群的实现步骤
来源:jb51  时间:2022/6/27 9:03:17  对本文有异议

Redis7.0部署集群详细版

集群的架构:集群就是使用网络将若干台计算机联通起来,并提供统一的管理方式,使其对外呈现单机的服务效果

集群的作用:

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

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

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

1、Redis集群内部结构设计

数据存储设计

  • 通过算法设计,计算出key应该保存的位置
  • 将所有的存储空间计划切割成16384份,每台主机保存一部分,每份代表的是一个存储空间,不是一个key的保存空间
  • 将key按照计算出的结果放到对应的存储空间
  • 增强可扩展性(有新的存储空间加入,官方叫做

集群内部通讯设计

  • 各个数据库相互通信,保存各个库中槽的编号数据
  • 一次命中,直接返回
  • 一次未命中,告知具体位置

2、cluster集群内部结构搭建

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

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

修改redis.conf配置文件

添加如下内容

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

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

  1. [root@localhost conf]# sed "s/6379/6380/g" redis-6379.conf > redis-6380.conf
  2. [root@localhost conf]# sed "s/6379/6381/g" redis-6379.conf > redis-6381.conf
  3. [root@localhost conf]# sed "s/6379/6382/g" redis-6379.conf > redis-6382.conf
  4. [root@localhost conf]# sed "s/6379/6383/g" redis-6379.conf > redis-6383.conf
  5. [root@localhost conf]# sed "s/6379/6384/g" redis-6379.conf > redis-6384.conf
  6. [root@localhost conf]# sed "s/6379/6385/g" redis-6379.conf > redis-6385.conf

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

启动redis服务集群

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

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

  1. ps -ef | grep redis-

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DPkULwye-1655210548732)(images/image-20220614160930499.jpg)]

连接节点

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

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

启动需要两个下载两个文件分别是rubygem

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

 

  1. # --cluster create 创建集群
  2. # --cluster-replicas 1 指定集群的内部结构(1代表一个master连接1个slave,2代表一个master连接两个save)
  3. # 后面的连接端口按数量实现master连接哪一个slave,1对1,1对2
  4. 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操作集群

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

指定端口连接客户端

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

Cluster节点操作命令

查看集群节点信息

  1. cluster nodes

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

  1. cluster replicate <master-id>

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

  1. cluster meet ip:port

忽略一个没有solt的节点

  1. cluster forget <id>

手动故障转移

  1. cluster failover

redis-trib命令

添加节点

  1. redis-trib.rb add-node

删除节点

  1. redis-trib.rb del-node

重新分片

  1. redis-trib.rb reshard

3、主从下线和主从切换

1、模拟从机下线操作

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

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

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

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

到此这篇关于Redis7.0部署集群的实现步骤的文章就介绍到这了,更多相关Redis7.0部署集群内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号