redis与etcd的对比

news2024/11/18 8:55:35

1.redis是一种高级的key:value存储系统,其中value支持五种数据类型:

    1.1 字符串(strings)

    1.2 字符串列表(lists)

    1.3 字符串集合(sets)

    1.4 有序字符串集合(sorted  sets)

    1.5 哈希(hashes)

2.redis的持久化:RDB(Redis Database)和AOF(Append Only File)

    RDB:在不同的时间点,将redis存储的数据生成快照,并且存储到磁盘等介质上

    AOF:将redis执行过的所有指令记录下来,下次redis重新自动的时候,会把这些指令从前到后执行一遍即可,redis重启后,优先使用AOF方式来进行数据恢复,这种方式数据恢复完整度较高

3.redis的主从:主从结构一个是为了冗余备份,另一个是为了提升读性能例如消耗性能的sort就可以由从服务器来承担

                        主从架构中,关闭主服务器的数据持久化功能,只打开从服务器的数据持久化功能,可以提高主服务器的处理性能

                        主从架构中,从服务器一般只设置为只读模式,可以避免从服务器的数据被修改

    

主从架构:

4.redis的哨兵模式:哨兵是一个独立的进程,其原理是哨兵通过发送命令,等待redis服务器响应,从而监控运行的多个redis实例

    redis sentinel集群是由若干个sentinel节点组成的分布式集群,可以实现故障发现,故障自动转移,配置中心和客户端通知。

    redis sentinel节点数量要满足2n+1(n>=1)的奇数个。

    集群监控:负责监控redis master和slave进程是否正常工作

    消息通知:如果某个redis有故障,哨兵负责发送消息作为报警通知给管理员

    故障转移:如果master node发生故障后,服务会自动转移到slave node上

    配置中心:如果故障转移发生后,通知client客户端新的master node地址

    原理:每隔1s每隔哨兵会向整个集群:mster+slave+sentinel进程,发送一次ping命令作为一次心跳检测

5.redis的集群:redis-master节点一般用于接收读写,而redis-slave节点则一般只用于备份, 其与对应的master拥有相同的slot集合,若某个redis-master意外失效,则再将其对应的slave进行升级为临时redis-master,数量最好使用3主3从

mysql和redis复制区别_Mysql主从复制和Redis主从复制的区别:

复制时机:mysql的主从复制是从数据库接入后开始复制,而redis的主从复制是从头开始,主机之前的数据,从机也会获得

复制原理:

    mysql:1.master将记录提交到二进制日志binary log2.slave将master的binary log读取后写到中继日志relay log3.slave读取中级日志的事件,将改变应用到自己的数据库中

     redis: 1.slave启动成功会给master发送一个SYNC的命令2.master接受到命令后开始在后台保存快照(即RDB持久化过程)并将保存快照期间接受到的修改命令缓存起来,当快照完成后3.并将保存快照期间接受到的修改命令缓存起来,当快照完成后

    全量复制:slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。(刚开始从机连接主机,主机一次给,是全量复制的过程)。

    增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步 (主机修改了数据会给予从机修改的数据同步,叫做增量复制)。

etcd:是coreos基于raft协议开发的分布式key-value存储,可用于服务发现、共享配置以及一致性保障性。

    核心就是raft协议,只要分为三个部分:选主,日志复制,安全性

    1.选主:

        raft协议是用于维护一组服务节点数据一致性的协议。这一组服务节点构成一个集群,并且有一个主节点来对外提供服务。当集群初始化或者主节点挂掉后,面临一个选主问题。集群中的每个节点,在任意时刻都处于Leader,Follower,Candidate这三个角色。特点如下:

  • 当集群初始化时候,每个节点都是Follower角色

  • 当集群存在至多1个有效的主节点,通过心跳与其他节点同步数据

  • 当Follower在一定时间内没有收到来自主节点的心跳,会将自己角色变为Candiadate,并发起一次选主投票;当收到包括自己在内超过半数节点赞成后,选举成功,成为主节点,当收到票数不足半数选举失败,或者选举超市,若本轮未选出主节点,将进行下一轮选举(一般出现这种情况都是由于多个节点同时选举,所有节点均未获得过半选票)

  • Candidate节点收到来自主节点的信息后,会立即终止选举过程,进入Follower角色。为了避免陷入选举失败循环,每个节点未收到心跳发起选举的时间是一定范围内的随机值,这样能够避免2个节点同时发起选主

2.日志复制:是指主节点每次操作形成的日志条目,并持久化到本地磁盘,然后通过网络IO发送到其他节点上去。其他节点通过日志的逻辑时钟(TERM)和日志编号(INDEX)来判断是否将该日志记录持久化到本地,当主节点收到包括自己在内超过半数的节点成功返回, 那么认为该日志是可提交的(committed),并将日志输入到状态机,将结果返回给客户端。

3.安全性:

        截止此刻,选主以及日志复制并不能保证节点间数据一致。试想,当一个某个节点挂掉了,一段时间后再次重启,并当选为主节点。而在其挂掉这段时间内,集群若有超过半数节点存活,集群会正常工作,那么会有日志提交。这些提交的日志无法传递给挂掉的节点。当挂掉的节点再次当选主节点,它将缺失部分已提交的日志。在这样场景下,按Raft协议,它将自己日志复制给其他节点,会将集群已经提交的日志给覆盖掉。

        这显然是不可接受的。

        其他协议解决这个问题的办法是,新当选的主节点会询问其他节点,和自己数据对比,确定出集群已提交数据,然后将缺失的数据同步过来。这个方案有明显缺陷,增加了集群恢复服务的时间(集群在选举阶段不可服务),并且增加了协议的复杂度。

        Raft解决的办法是,在选主逻辑中,对能够成为主的节点加以限制,确保选出的节点已定包含了集群已经提交的所有日志。如果新选出的主节点已经包含了集群所有提交的日志,那就不需要从和其他节点比对数据了。简化了流程,缩短了集群恢复服务的时间。

        这里存在一个问题,加以这样限制之后,还能否选出主呢?答案是:只要仍然有超过半数节点存活,这样的主一定能够选出。因为已经提交的日志必然被集群中超过半数节点持久化,显然前一个主节点提交的最后一条日志也被集群中大部分节点持久化。当主节点挂掉后,集群中仍有大部分节点存活,那这存活的节点中一定存在一个节点包含了已经提交的日志了。

        至此,关于Raft协议的简介就全部结束了

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

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

相关文章

杜牧是唐朝最风流的诗人

杜牧,有“杜紫薇”之称,是宰相杜佑的孙子。李白、杜甫是“大李杜”。杜牧、李商隐是“小李杜”。 杜牧23岁写了《阿房宫赋》,一朝成名天下知。 唐朝晚年,科举和仕途没有出路,杜牧寄情享乐。杜牧怀才不遇,…

安装SSL证书之后还会有不安全提示怎么办?

安装SSL证书过程中如果遇到错误,不要慌,按照以下步骤进行排查和解决: 1. 仔细阅读错误信息: - 错误消息通常会明确指出问题所在,如证书过期、证书链不完整、域名不匹配等。记下或截图保存具体的错误代码和描述&#xf…

区块链安全应用----压力测试

通过Caliper进行压力测试程序 1.环境配置 第一步. 配置基本环境 部署Caliper的计算机需要有外网权限;操作系统版本需要满足以下要求:Ubuntu > 16.04、CentOS > 7或MacOS > 10.14;部署Caliper的计算机需要安装有以下软件&#xff…

Linux入门学习 之 基础操作指令讲解(小白必看)

股票的规律找到了,不是涨就是跌 一、Linux下基本指令 1.ls 指令 2.pwd 命令 3.cd 指令 4.touch 指令 5.mkdir 指令 6.rmdir指令 && rm 指令 7.man 指令 8.cp 指令 9.mv指令 10.cat 11.more 指令 12.less 指令 13.head 指令 14.tail 指令 15…

java核心类

一,String字符串 1.1,String字符串是引用类型,且不可变 String str1 "Hello";String str2 str1.concat(" World"); // 使用concat方法连接字符串,返回一个新的字符串对象System.out.println(str1); // 输出:Hello,原始…

Linux的学习之路:15、文件(2)

摘要 这里就说一下文件描述符和重定向以及缓冲区 目录 摘要 一、文件描述符 1、0 、1、2 2、分配规则 二、重定向 三、缓冲区 四、代码 一、文件描述符 1、0 、1、2 文件描述符(File Descriptor,简称 fd)是计算机科学中的一个术语…

OpenHarmony实战开发-如何利用panel实现底部面板内嵌套列表。

介绍 本示例主要介绍了利用panel实现底部面板内嵌套列表,分阶段滑动效果场景。 效果图预览 使用说明 点击底部“展开”,弹出panel面板。在panel半展开时,手指向上滑动panel高度充满页面,手指向下滑动panel隐藏。在panel完全展开…

IO——进程间通讯 IPC

1. 进程间通信方式 (1) 早期进程间通信: 无名管道(pipe)、有名管道(fifo)、信号(signal) (2) system V IPC: 共享内存(shared memory)、消息队列(message queue)、信号灯集(semaphore set) (3) BSD: 套接字(socket) 2. 无名管道 2.1特点 …

局域网管理软件,适合在局域网内的管理软件有哪些?

信息技术的不断发展,局域网在企业、学校等机构中得到了广泛应用。 局域网不仅能够提高数据传输效率,还能实现资源共享和协同工作。 为了更好地管理和维护局域网,需要使用一些专业的局域网管理软件。 一、局域网的应用范围 局域网&#xff…

ruoyi element-ui 实现拖拉调整图片顺序

ruoyi element-ui 实现拖拉调整图片顺序 安装sortablejs https://sortablejs.com/npm 安装sortablejs npm install sortablejs --save相关options var sortable new Sortable(el, {group: "name", // or { name: "...", pull: [true, false, clone, …

华为 2024 届实习招聘——硬件-电源机试题(四套)

华为 2024 届实习招聘——硬件-电源机试题(四套) 部分题目分享,完整版带答案(有答案,答案非官方,未仔细校正,仅供参考)(共四套) 获取(WX:didadidadidida313&…

优思学院|ISO45001职业健康安全管理体系是什么?

ISO45001:2018是新公布的国际标准规范,全球备受期待的职业健康与安全国际标准(OH&S)于2018年公布,并将在全球范围内改变工作场所实践。ISO45001将取代OHSAS18001,成为全球工作场所健康与安全的参考。 ISO45001:201…

完整、免费的把pdf转word文档

在线工具网 https://www.orcc.online/pdf 支持pdf转word,免费、完整、快捷 登录网站 https://orcc.online/pdf 选择需要转换的pdf文件: 等待转换完成 点击蓝色文件即可下载 无限制,完整转换。

LLM推理加速,如何解决资源限制与效率挑战

©作者|Zane 来源|神州问学 LLM加速推理,GPU资源破局之道。 引言 大型语言模型(LLM)已经在多种领域得到应用,其重要性不言而喻。然而,随着这些模型变得越来越普遍,对GPU资源的需求也随之激增&#xff…

问卷回收率太低?用这几个小技巧轻松提升!

在进行调查研究时,高回收率是保障数据质量和调研成果有效性的关键因素之一。然而,有时候我们面对的情况是调查问卷的回收率较低,这可能会影响到数据的客观性和准确性。在这种情况下,我们需要采取措施来提高调查问卷的回收率&#…

MapReduce 机理

1.hadoop 平台进程 Namenode进程: 管理者文件系统的Namespace。它维护着文件系统树(filesystem tree)以及文件树中所有的文件和文件夹的元数据(metadata)。管理这些信息的文件有两个,分别是Namespace 镜像文件(Namespace image)和操作日志文件(edit log)&#xff…

Python --- 在python中安装NumPy,SciPy,Matplotlib以及scikit-learn(Windows平台)

在python中安装NumPy,SciPy,Matplotlib以及scikit-learn(Windows平台) 本文是针对(像我一样的)python新用户所写的,刚刚在电脑上装好python之后,所需的一些常见/常用的python第三方库/软件包的快速安装指引。包括了这些常用安装包…

0-1背包问题:贪心算法与动态规划的比较

0-1背包问题:贪心算法与动态规划的比较 1. 问题描述2. 贪心算法2.1 贪心策略2.2 伪代码 3. 动态规划3.1 动态规划策略3.2 伪代码 4. C语言实现5. 算法分析6. 结论7. 参考文献 1. 问题描述 0-1背包问题是组合优化中的一个经典问题。假设有一个小偷在抢劫时发现了n个…

C语言--函数递归

目录 1、什么是递归? 1.1 递归的思想 1.2 递归的限制条件 2. 递归举例 2.1 举例1:求n的阶乘 2.2 举例2:顺序打印⼀个整数的每⼀位 3. 递归与迭代 扩展学习: 早上好,下午好,晚上好 1、什么是递归&…

【Web】DASCTF X CBCTF 2022九月挑战赛 题解

目录 dino3d Text Reverser cbshop zzz_again dino3d 进来是一个js小游戏 先随便玩一下,显示要玩够1000000分 直接console改分数会被检测 先是JSFinder扫一下,扫出了check.php 到js里关键词索引搜索check.php 搜索sn,发现传入的参数是…