热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Redis7.0部署集群的实现步骤_Redis

本文主要介绍了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 # 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-

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

连接节点

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

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

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

# 下载命令也会将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

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

cluster meet ip:port

忽略一个没有solt的节点

cluster forget

手动故障转移

cluster failover

redis-trib命令

添加节点

redis-trib.rb add-node

删除节点

redis-trib.rb del-node

重新分片

redis-trib.rb reshard

3、主从下线和主从切换

1、模拟从机下线操作

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

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

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

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


推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • 本文介绍了如何使用OpenXML按页码访问文档内容,以及在处理分页符和XML元素时的一些挑战。同时,还讨论了基于页面的引用框架的局限性和超越基于页面的引用框架的方法。最后,给出了一个使用C#的示例代码来按页码访问OpenXML内容的方法。 ... [详细]
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
  • 护墙_搭建LVS负载均衡NAT和DR模式
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了搭建LVS负载均衡NAT和DR模式相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 基于分布式锁的防止重复请求解决方案
    一、前言关于重复请求,指的是我们服务端接收到很短的时间内的多个相同内容的重复请求。而这样的重复请求如果是幂等的(每次请求的结果都相同,如查 ... [详细]
  • 玩转直播系列之消息模块演进(3)
    一、背景即时消息(IM)系统是直播系统重要的组成部分,一个稳定的,有容错的,灵活的,支持高并发的消息模块是影响直播系统用户体验的重要因素。IM长连接服务在直播系统有发挥着举足轻重的 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 1.利用node实现页面实时更新,主要 ... [详细]
author-avatar
手机用户新常态
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有