redis集群数据一致性如何保证?

一般的做法是对key进行hash,比如有4台机器,就对4取模。

这样的坏处是增加或者减少机器的时候,会有大量数据进行迁移。

业界做法是用一致性哈希算法,将机器节点的ip值,对一个很大的数取模比如2^32,

用一个环去维护它,如图

节点A与节点B之间的key-2,就存在节点B里面,(两个节点之间的数据,交给顺时针的后一个节点存储),这样的好处是即使有节点(机器)变化,最多也会影响一个节点数据的迁移,不会影响其他节点的数据,(具体实现,可以维护一个节点数据(有序的),拿到一个key的hash我们可以通过二分查找来知道具体存在哪个节点上)。

优化:真实场景我们没有那么多节点放在环上,有可能出现一个节点存了许多的数据,而其他节点确存的很少数据(数据分布不均匀),此时就可以用虚拟节点技术,创建许多虚拟节点,维护好虚拟节点与真实节点的映射关系,增加环上节点的数量,来达到数据分布均匀的效果。

参考:9.4 什么是一致性哈希? | 小林coding (xiaolincoding.com)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Prometheus 配置Basic auth认证

官方配置说明: Basic auth | Prometheus 一、生成密码加密串 Prometheus于2.24版本(包括2.24)之后提供Basic Auth功能进行加密访问,在浏览器登录UI的时候需要输入用户密码,访问Prometheus api的时候也需要加上用户密…

优质的短效HTTP代理具备什么优点?

随着网络时代的蓬勃发展,数据的获取与处理成为了企业决策和市场竞争的关键。在这场数据的角逐中,优质的短效HTTP代理脱颖而出,备受业界瞩目。优质的短效HTTP代理,提供了稳定的网络连接和匿名性,更为数据采集提供了关键…

Echarts组件初步封装

一、业务场景: 最近在vue中使用echarts时 有多处需要用到各种图表,想着自己封装一个便于多次复用 为了避免大家走弯路,为大家整理了一下,粘走可以直接用的那种 二、具体实现步骤: 1、先在终端安装echarts npm install…

管理类联考–复试–英文面试–问题--规划介绍原因做法--纯英文版

借鉴 https://www.bilibili.com/video/BV1Dk4y187zN/?p4&spm_id_from333.880.my_history.page.clickhttps://www.bilibili.com/video/BV1Dk4y187zN/?p4&spm_id_from333.880.my_history.page.click https://ttsreader.com/zh/https://ttsreader.com/zh/ 规划 视频版…

一文掌握Java动态代理的奥秘与应用场景

一、基本概念 为某个对象提供一个代理,以控制对这个对象的访问。代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象来替代。代理类负责请求的预处理、过滤、将请求分派委托类处理、以及委托类执行完请求后的后续处理。…

中国软件评测中心发布《健康软件安全白皮书》,美创参编分享方案实践

日前,中国软件评测中心网络安全和数据安全研究测评事业部发布《健康软件安全白皮书》研究成果,美创科技深度参与此次白皮书编写工作,针对健康软件目前面临的安全风险,分享数据安全建设思路。 白皮书详细剖析健康软件面临的网络和数…

盲盒抽卡机小程序:探索神秘盲盒,尽享抽卡乐趣

在盲盒文化的热潮中,盲盒抽卡机作为一种深受大众喜爱的娱乐形式,正逐渐成为市场上的新宠。为了满足广大盲盒爱好者和抽卡玩家的需求,我们积极投身于盲盒抽卡机小程序的开发,旨在通过创新的技术手段,为用户带来全新的盲…

PyTorch出现:RuntimeError: An attempt has been made to start a new process...报错

1.查看显卡: 第一步:同时按下键盘的winr键,输入cmd 第二步:随后输入 nvidia-smi 2.查看下载安装的包: conda list conda list 3.问题报错 PyTorch出现:RuntimeError: An attempt has been made to …

解决vue3中刷新浏览器页面的axios请求状态变为canceled

最近在开发中要加一个悲观锁的功能,具体需求是:用户1和用户2不能同时打开一个模型进行编辑,用户1优先进入模型后,要对该模型进行上锁,关闭该模型或刷新页面时要进行解锁,此时在刷新页面时出现了问题。 刷新…

线上linux服务器升级nginx

一个nginx版本空包 一个pcre文件 一个zlib文件 ./configure配置文件 make编译 make install复制所有文件到nginx 如果nginx -v无版本号 检查环境变量cat /etc/profile 编辑 环境变量vi /etc/profile 按i进入编辑模式 按esc进入查看模式 因为path中并未使用%JAVA_HOME%字样…

力扣---全排列---回溯

思路: 递归做法,一般会有visit数组来判断第 i 位是否被考虑了。我们先考虑第0位,再考虑第1位,再考虑第2位...dfs函数中还是老套路,先判定特殊条件,再从当下的角度(决定第 j 位是哪个元素&#x…

Docker 应用部署

MySQL部署 需求 在 Docker 容器中部署 MySQL ,并通过外部 mysql 客户端操作 MySQL Server 。 步骤 1. 搜索mysql镜像 docker search mysql 2. 拉取mysql镜像 docker pull mysql:5.6 3. 创建容器,设置端口映射、目录映射 事先在/root目录下创建m…

VScode手动安装vsix格式插件,提示安装插件与code版本不兼容问题

问题描述: vscode手动按装插件提示"插件不兼容code版本 原因方案:修改安装包内的package.json文件中的版本号与vscode版本号对应即可 解决步骤 以(adpyke.codesnap-1.3.4.vsix)安装包为例 手动安装vscode弹出 无法安装扩展“adpyke.codesnap-1.3.4”,它与 …

每周一算法:迭代加深A*

题目链接 AcWing 180. 排书 题目描述 给定 n n n 本书,编号为 1 ∼ n 1\sim n 1∼n。 在初始状态下,书是任意排列的。 在每一次操作中,可以抽取其中连续的一段,再把这段插入到其他某个位置。 我们的目标状态是把书按照 1 ∼…

提高企业员工生产力的办法

在现代商业环境中,提高企业员工生产力是企业持续发展的关键因素之一。员工生产力的提升不仅有助于企业提高运营效率,还能增强企业的市场竞争力。那么,如何有效地提高企业员工生产力呢?本文将就此问题进行探讨。 一、引入先进技术软…

[ C++ ] STL---stack与queue

目录 stack简介 stack的常用接口 queue简介 queue的常用接口 stack的模拟实现 queue的模拟实现 stack简介 1. stack是具有后进先出操作的一种容器适配器,其只能从容器的一端进行元素的插入与删除操作; 2. stack是作为容器适配器被实现的&#xff0…

jmeter接口自动化测试框架

接口测试可以分为两部分: 一是线上接口(生产环境)自动化测试,需要自动定时执行,每5分钟自动执行一次,相当于每5分钟就检查一遍线上的接口是否正常,有异常能够及时发现,不至于影响用…

基于preCICE的Fluent适配器开发分享

1 开发目的 后向台阶流是流动分离现象的经典代表,为了更有效地控制后向台阶流中的重要特征参数,如背部分离压强和湍流强度,进行了耦合分析。通过该耦合分析,能够深入研究后向台阶流的特性,并探索如何控制这些参数对流…

RK3568 安装Miniconda3

下载链接:https://download.csdn.net/download/smile_5me/89012477?spm=1001.2014.3001.5503 需要RK3568运行Ubuntu,之前的文章有关于如何安装Ubuntu以及遇到的问题 1、 拷贝 Miniconda3-latest-Linux-aarch64.sh 到开发板 2、运行安装 Miniconda3-latest-Linux-aarch64.…

央视6周年巨献《中国神话》AI微短剧首发,人工智能频道震撼上线

在庆祝成立六周年之际,中央广播电视总台(简称央视)为观众带来了一场科技与文化的交融盛宴。近日,央视隆重发布了我国首部AI全流程微短剧《中国神话》,并正式上线了人工智能专业频道。这一系列举措彰显了央视在人工智能…
最新文章