广告位联系
返回顶部
分享到

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

Redis 来源:互联网 作者:酷站 发布时间:2022-06-27 09:28:53 人浏览
摘要

Redis7.0部署集群详细版 集群的架构:集群就是使用网络将若干台计算机联通起来,并提供统一的管理方式,使其对外呈现单机的服务效果 集群的作用: 分散单台服务器的访问压力,实

Redis7.0部署集群详细版

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

集群的作用:

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

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

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

1、Redis集群内部结构设计

数据存储设计

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

集群内部通讯设计

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

2、cluster集群内部结构搭建

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

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

修改redis.conf配置文件

添加如下内容

1

2

3

4

cluster-enabled yes # 启动为节点

cluster-config-file nodes-6379.conf # cluster配置文件名,该文件属于自动生成,仅用于快速查找文件并查询文件内容

cluster-node-timeout 10000 # 节点服务响应超时时间,用于判定该节点是否下线或切换为从节点

cluster-migration-barrier <count> # master连接的slave最小数量

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

1

2

3

4

5

6

[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服务集群

1

2

3

4

5

6

7

# 在第一个窗口执行6379服务

redis-server redis-6379.conf

# 在第二个窗口执行6380服务

redis-server redis-6380.conf

# 在第三个窗口执行6381服务

redis-server redis-6381.conf

# 下面的代码依次类推到6385

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

1

ps -ef | grep redis-

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

连接节点

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

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

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

1

2

# 下载命令也会将gem一起

yum -y install rubygems

 

1

2

3

4

# --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操作集群

1

2

3

4

5

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

指定端口连接客户端

1

2

3

4

5

6

7

# 连接指定的集群客户端

[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节点操作命令

查看集群节点信息

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秒内连接不上从机就会标记从机失败,其他集群服务会连接上失败的,其他服务会接收到信息

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

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


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://xiaozhong.blog.csdn.net/article/details/125285862
相关文章
  • spring boot集成redis基础入门实例介绍
    redis 支持持久化数据,不仅支持key-value类型的数据,还拥有list,set,zset,hash等数据结构的存储。 可以进行master-slave模式的数据备份 更多
  • redis批量操作pipeline管道操作方法

    redis批量操作pipeline管道操作方法
    redis | pipeline(管道) 背景 Redis是一种基于客户端-服务端模型以及请求/响应的TCP服务。这意味着通常情况下一个请求会遵循以下步骤: 客户
  • springboot整合使用云服务器上的Redis方法

    springboot整合使用云服务器上的Redis方法
    一、前提条件 修改redis.conf配置文件 1、protected-mode yes(默认的) 修改成 protected-mode no,解除保护模式 2、注释掉绑定ip ,绑定ip的话,使得
  • 阿里云服务器部署Redis并整合Spring Boot的介绍

    阿里云服务器部署Redis并整合Spring Boot的介绍
    一、什么是Redis redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zs
  • 生产redisson延时队列不消费问题排查解决

    生产redisson延时队列不消费问题排查解决
    问题描述 项目使用redisson延时队列功能,实现直播的开播提醒,突然有一天业务爆出问题,未触发开播提醒。 初步排查 首先通过查询生产日
  • Redis主从复制分步讲解使用

    Redis主从复制分步讲解使用
    主服务器(master)启用二进制日志 选择一个唯一的server-id 创建具有复制权限的用户 从服务器(slave)启用中继日志, 选择一个唯一的serv
  • Redis中HyperLogLog的使用介绍
    HyperLogLog,基数统计; 那什么是基数? 比如有两个数组 数组A = [1,2,3,4,5]; 数组B = [3,4,5,6,7]; 这时候基数就是[1,2,3,4,5,6,7],总共有7个数; 就是
  • Redis中的持久化介绍

    Redis中的持久化介绍
    1. 前言 为什么要进行持久化?:持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据
  • Redis源码设计剖析之事件处理示例介绍

    Redis源码设计剖析之事件处理示例介绍
    1. Redis事件介绍 Redis服务器是一个 事件驱动程序 ,所谓事件驱动就是输入一条命令并且按下回车,然后消息被组装成 Redis 协议的格式发送给
  • Mysql应用安装后找不到my.ini文件的解决过程

    Mysql应用安装后找不到my.ini文件的解决过程
    一、背景 我在两台电脑上安装了MySQL Server 8.0,准备继续做主从配置,这时候就需要用到my.ini文件进行配置,但是我找不到my.ini文件。 我的
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计