Redis的集群模式

news2024/11/11 13:58:46

1. Redis三种集群模式

Redis 提供的三种集群模式各有其特点和适用场景,以下是对这三种模式的简要概述:

  1. 主从模式(Master-Slave Replication)

    • 在这种模式下,数据在主节点(Master)上进行写操作,然后异步复制到一个或多个从节点(Slave)。

    • 主节点负责数据的持久化和写入操作,从节点则提供读操作,实现读写分离,提高系统的读取性能。

    • 主从模式适合于数据量不是特别大,且对高可用性要求不是特别高的场景。

    • 缺点是当主节点发生故障时,需要手动进行故障转移,这可能导致短暂的服务中断。

  2. 哨兵模式(Sentinel)

    • 哨兵模式是主从模式的扩展,通过哨兵(Sentinel)进程来监控主节点的状态。

    • 哨兵可以自动检测主节点的故障,并在主节点不可用时自动进行故障转移,将一个从节点提升为新的主节点。

    • 哨兵模式提高了系统的可用性,但依然存在一定的局限性,比如哨兵本身也需要维护和监控。

    • 适用于对高可用性有一定要求,但不需要水平扩展的场景。

  3. 去中心化模式(Cluster)

    • 这是Redis的官方集群解决方案,采用去中心化架构,数据通过分片(sharding)分布在多个节点上。

    • 每个节点都存储一部分数据(槽),并且节点之间可以相互通信,实现数据的自动迁移和负载均衡。

    • 去中心化模式支持在线添加或移除节点,实现动态扩展。

    • 集群中的每个节点都可以处理读写请求,并且具有自动故障转移和数据复制的能力,从而提供高可用性和容错性。

    • 适合于需要水平扩展、高可用性和负载均衡的大型应用。

2. 为什么使用Redis集群

         Redis集群之所以被广泛使用,主要是因为它提供了高可用性、扩展性、负载均衡、数据一致性、容错性等关键特性。通过在多个节点上分布式存储数据,Redis集群能够实现自动故障转移和负载均衡,从而提高系统的稳定性和响应速度。此外,Redis集群支持多种数据类型和灵活的部署方式,易于管理和集成,使其成为处理大规模数据和高并发访问的理想选择。

3. 主从模式

  • redis主从模式表示一个主节点跟若干个从节点。
  • 主节点可以负责写操作和读操作。
  •  从节点只负责读操作。
  •  主节点的数据会自动同步到所有的从节点上。

如何搭建redis主从模式

为了操作方便: 我在一台linux上跑三个redis服务器。 只要端口号不同即可。

修改配置文件

1.端口号
2.dump文件的名称
3.aof的名称

开启三台redis服务

命令:

        redis-server redisXXX.conf

配置主从关系

配从不配主  slaveof 主节点IP 主节点port

info replication 查看主从的状态

思考:

1. 如果某台slave宕机,如果恢复后是否具有master新增的数据呢。 
2. master宕机后,slave会不会自动选举拉大。 [不会] ---[]

发现主从模式的缺点: 不会自动选举master节点。导致一旦主节点宕机,无法进行写操作。

4. 哨兵模式

Redis的哨兵模式(Sentinel)是一种监控系统,用于实现主从复制架构中的高可用性。为了解决主从模式的缺陷: 当主节点宕机后,从节点无法直接上位。

准备条件 

修改sentinel.conf

启动哨兵服务 

redis-sentinel sentinel.conf

当6380端口下线之后会在6381和6382之间选出一个主节点 

优点:

  •         哨兵模式是基于主从模式的,所有主从的优点,哨兵模式都具有。
  •         主从可以自动切换,系统更健壮,可用性更高。

缺点:

  •         哨兵依然是主从模式,没法解决写的压力,只能减轻读的压力
  •         存储得不到扩容,存储数据总量是主的数据总量
  •         当主服务器宕机后,从服务器切换成主服务器的这段时间,服务不可用。

5. 去中心化模式

去中心化模式,也称为Redis Cluster,是一种高度可扩展且具有高可用性的解决方案。

redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个整数结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。

当你往Redis Cluster中加入一个Key时,会根据crc16(key) mod 16384计算这个key应该分布到哪个hash slot中,一个hash slot中会有很多key和value。你可以理解成表的分区,使用单节点时的redis时只有一个表,所有的key都放在这个表里;改用Redis Cluster以后会自动为你生成16384个分区表,你insert数据时会根据上面的简单算法来决定你的key应该存在哪个分区,每个分区里有很多key。

准备三主三从

1. 修改端口
2. dump文件名
3. aof文件名
4. aof目录名
5. 开启集群模式cluster-enabled yes
6. cluster-config-file nodes-7001.conf

启动redis

分配槽以及主从关系

分槽,以及设置主从关系。 副本
redis-cli --cluster create --cluster-replicas 1 192.168.100.101:7001 192.168.100.101:7002 192.168.100.101:7003 192.168.100.101:7004 192.168.100.101:7005 192.168.100.101:7006 

 

命令行的客户端

redis-cli -c -h 192.168.111.188 -p 7006 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1944781.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服务器部署环境(docker安装Mysql + Redis + MongoDB)

1. 安装Docker 1、选择要安装的平台 Docker要求CentOS系统的内核版本高于3.10 uname -r #通过 uname -r 命令查看你当前的内核版本官网地址 2. 卸载已安装的Docker, 使用Root权限登录 Centos。确保yum包更新到最新。 sudo yum update如果操作系统没有安装过Docker , 就不需要…

自动化测试之python操作Oracle遇到的问题:Oracle-Error-Message: DPI-1047

自动化测试需要连接数据库,进行一些增删改查的操作,那么针对python语言,如何才能够通过程序完成连接数据库并且进行操作呢?可以通过cx_oracle这个模块来实现。 一、问题描述: 下面是我在实践的过程中遇到的问题&#…

面试知识储备-redis和redission

1.redis的使用 引入依赖,自动注解redistemplate即可使用, 默认的redistemplate存入到redis中是字符流的形式,需要配置redistemplate, 如果不想配置,可以使用stringRedistemplate 可以使用string类型,但是…

Python-numpy基础--------2

1.full()创建函数 目录 1.full()创建函数 2.创建单位矩阵 3.linspace创建 4.logspace 创建 5.二维数组的索引和切片: 1.索引直接获取 在NumPy中,full() 函数用于创建一个给定形状、类型的新数组,并用指定的值填充这个数组。这个函数非…

p24 p25作业讲解(2)

#include<stdio.h> #include<stdlib.h> int count_bit_one(int n) { int count0;while(n){if(n%21){count;}nn/2;}return count;} int main(){int a0;scanf("%d",&a);//写一个函数求a的二进制(补码)表示中有几个1int countcount_bit_one(a);printf(&…

C盘上的软件怎么移动到D盘?C盘满了,教你轻松转移软件到D盘

在日常使用电脑的过程中&#xff0c;我们经常会遇到C盘空间不足的情况。为了释放C盘的空间&#xff0c;或者为了更好地管理我们的软件和文件&#xff0c;我们可能需要将安装在C盘的软件移动到D盘。那么&#xff0c;C盘上的软件怎么移动到D盘呢&#xff1f;本文将介绍两种常用的…

Ubuntu-文件管理器中鼠标右键添加文本文件

文件管理器中鼠标右键添加文本文件 一、概述二、步骤 一、概述 Ubuntu在文管右键发现没有创建文本文件的菜单&#xff0c; 期望如下所示&#xff0c;这样的操作非常简单 二、步骤 找到模板文件夹 在模板文件夹&#xff0c;创建自己想要的文件就好啦 这个也是支持放文件夹去…

Microsoft 365 Office BusinessPro LTSC 2024 for Mac( 微软Office办公套件)

Microsoft 365 Office BusinessPro LTSC 2024是一款专为商业用户设计的办公软件套件&#xff0c;它集成了Word、Excel、PowerPoint等核心应用&#xff0c;并特别包含了Microsoft Teams这一强大的协作工具。Teams将聊天、会议、文件共享、任务管理等功能整合到一个平台上&#x…

听说宇哥突然大幅删减了新36讲?25张宇强化究竟行不行呀?

宇哥深夜划重点&#xff0c;大幅删减新36讲&#xff01; 宇哥最近舆论压力很大&#xff0c;很多人怕36讲暑假学不完了。 甚至一些人开始考虑&#xff0c;要不要转武忠祥&#xff1f; 张宇划的重点课&#xff0c;其实就是&#xff1a;概念要听&#xff0c;计算不用听。 因为强…

SQL Server 数据误删的恢复

在日常的数据库管理中&#xff0c;数据的误删操作是难以避免的。为了确保数据的安全性和完整性&#xff0c;我们必须采取一些措施来进行数据的备份和恢复。本文将详细介绍如何在 SQL Server 中进行数据的备份和恢复操作&#xff0c;特别是在发生数据误删的情况下。假设我们已经…

苹果微信数据恢复的教程?3个方法,一学就会!

各位家人朋友们&#xff01;你是否有遇到过微信数据误删或者是找不到的窘况呢&#xff1f;是不是时常会发现时间较为久远的微信聊天记录或者是文件已经过期无法打开呢&#xff1f;这些生活上的小烦恼大家都会有&#xff0c;但是大部分人都不知道该如何解决微信数据恢复问题。今…

大厂面试官问我:Mysql B+树索引中B最后一层是双向链表还是单向链表?为什么这么设计?【后端八股文十四:Mysql索引八股文合集】

本文为【Mysql索引八股文合集】初版&#xff0c;后续还会进行优化更新&#xff0c;欢迎大家关注交流~ hello hello~ &#xff0c;这里是绝命Coding——老白~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏…

局部加全局视角遮挡人脸表情识别方法

一、摘要 实际场景中各种遮挡增加了表情识别难度。为此&#xff0c;提出一种滑块局部加权卷积注意力和全局注意力 池化的视觉 Transformer 结合的方法来解决遮挡问题。 利用主干网络提取表情特征图&#xff0c;将表情特征图裁剪成 多个区域块&#xff0c;利用局部 Patch 注意力…

Mem0 - 个人 AI 的内存层

文章目录 一、关于 Mem0核心功能&#x1f511;路线图 &#x1f5fa;️常见用例Mem0与RAG有何不同&#xff1f; 二、快速入门 &#x1f680;1、安装2、基本用法&#xff08;开源&#xff09;3、高级用法&#x1f527;4、大模型支持 三、MultiOn1、概览2、设置和配置4、将记忆添加…

【嵌入式开发之并发程序设计】守护进程的定义、特点、相关概念及创建

守护进程的定义 守护进程(Daemon Process)&#xff0c;又叫精灵进程、监控进程&#xff0c;是Linux三种进程类型之一&#xff0c;是 Linux 中的后台服务进程&#xff0c;是一个生存期较长的进程&#xff0c;通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事…

亚信安全与软银中国全资企业爱思比通信达成战略合作

近日&#xff0c;亚信安全携手软银集团旗下全资企业爱思比通信科技&#xff08;上海&#xff09;有限公司&#xff08;以下简称“爱思比通信”&#xff09; 共同宣布&#xff0c;双方正式签署战略合作协议。依托双方在技术、业务和资源三大层面的实力与优势&#xff0c;亚信安全…

2024-07-23 Unity AI行为树2 —— 项目介绍

文章目录 1 项目介绍2 AI 代码介绍2.1 BTBaseNode / BTControlNode2.2 动作/条件节点2.3 选择 / 顺序节点 3 怪物实现4 其他功能5 UML 类图 项目借鉴 B 站唐老狮 2023年直播内容。 点击前往唐老狮 B 站主页。 1 项目介绍 ​ 本项目使用 Unity 2022.3.32f1c1&#xff0c;实现基…

韦东山嵌入式linux系列-查询方式的按键驱动程序_编写框架

1 LED 驱动回顾 对于 LED&#xff0c; APP 调用 open 函数导致驱动程序的 led_open 函数被调用。在里面&#xff0c;把 GPIO 配置为输出引脚。安装驱动程序后并不意味着会使用对应的硬件&#xff0c;而 APP 要使用对应的硬件&#xff0c;必须先调用 open 函数。所以建议在驱动…

算法-DFS搜索

题目一 解题思路 深度遍历剪枝优化 第r行&#xff0c;第i列能不能放棋子&#xff1a;用数组dg udg cor 分别表示&#xff1a;点对应的两个斜线以及列上是否有皇后。 边界问题&#xff1a; dg[i r] 表示 r行i列处&#xff0c;所在的对角线上有没有棋子 udg[n - i r]表示 r…

环信+亚马逊云科技服务:助力出海AI社交应用扬帆起航

随着大模型技术的飞速发展&#xff0c;AI智能体的社交体验得到了显著提升&#xff0c;AI社交类应用在全球范围内持续火热。尤其是年轻一代对新技术和新体验的热情&#xff0c;使得AI社交产品在海外市场迅速崛起。作为领先的即时通讯解决方案提供商&#xff0c;环信与亚马逊云科…