谈谈Redis的哈希槽和一致性哈希

一 . 前言

在 Redis 集群里面主要涉及到两种 Hash 算法 :

  • 一种是一致性哈希 , 这种算法在 适用dis Cluster方案中并没有实现,主要在外部的代理模式 (Twemproxy)
  • 一种是 Slot 哈希槽算法 ,这种算法就是 Cluster 的核心算法

所以谈到这个问题的时候,不能只讲一部分。在 Redis 3.0 之前,Redis 是没有集群方案的,在这个时期实现 Redis 的 分布式 主要由客户端自行实现。 一般的实现方式就是一致性 Hash。

而 Redis 3.0 之后 ,Redis 实现了 Cluster 集群,也就采用了相对而言更简洁的 Slot 槽方式。

第一阶段 :单节点到多节点集群

之前也聊过,单节点的性能是有瓶颈的。当单节点达到瓶颈后,构建集群就是最合理,最经济的用法。

这就衍生出几个问题 :

  1. 单节点的时候,直接把数据往一个节点丢就行,查询也是一个节点去处理查询
  2. 集群后,数据应该放在哪个节点? 是全部存一份还是分开存?
  3. 集群后, 查询应该查询哪个节点? 不可能全量查询吧 , 一个一个节点查ÿ

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

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

相关文章

simpleini开源库使用

源码下载:GitHub - brofield/simpleini: Cross-platform C library providing a simple API to read and write INI-style configuration files 1.加载simpleini库 下载后解压 2.simpleini库的简单使用 (1)加载ini文件 // 定义ini文档对象…

第10届蓝桥杯Scratch图形化编程 选拔赛初级组编程题1:小猫走城堡

准备工作: 导入育最库中的“Castle 3 小猫从坐标点(-165,-93)出发向城堡走去。随着位置的移动,角色大小逐渐变小,最后在城堡前消失。注意1.角色大小在逐渐变化,运行结束再次点击绿旗,程序应还能再次扶行。2.角色应该是…

大数据信用查询一般能查到什么?这几点要清楚

大数据信用查询一般能查到什么?当我们谈论大数据信用查询时,我们不只是查看一些干瘪的数据,而是深入探索了一个人的大数据信用特征。这些查询结果为我们提供了一个全面的、多维度的个人信用画像,本文带大家详细了解一下,一起去看…

STM32F103学习笔记(六) RTC实时时钟(原理篇)

目录 1. RTC简介 2. STM32F103的RTC模块概述 2.1 RTC模块的基本原理 2.2 RTC的工作原理 2.3 备份寄存器的功能和特点 2.4 RTC的工作流程 3. RTC的常见应用场景 4. 常见问题与解决方案 1. RTC简介 实时时钟(RTC)是嵌入式系统中的一种重要组件&…

ThreadLocal“你”真的了解吗?(二)

《ThreadLocal“你”真的了解吗?(一)》这篇文章梳理了ThreadLocal的基础知识,同时还梳理了java中线程的创建方法以及这两者之间的关系,本篇文章我们将继续梳理与ThreadLocal相关,在上一节也提过的另一组件T…

函数——递归6(c++)

角谷猜想 题目描述 日本一位中学生发现一个奇妙的 定理,请角谷教授证明,而教授 无能为力,于是产生了角谷猜想。 猜想的内容:任给一个自然数, 若为偶数则除以2,若为奇数则乘 3加1,得到一个新的…

深入理解JS的执行上下文、词法作用域和闭包(下)

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

mvn版本导致的Failed to execute goal on project问题与解决

目录 一,报错情况与原因二,maven的下载与安装1,卸载maven2,安装mvn3,指定mvn的默认版本: 一,报错情况与原因 使用命令mvn package时会报如下错误: Failed to execute goal on proj…

prometheus+grafana监控nginx的简单实现

1.编译安装NGINX 加入编译安装nginx-module-vts模块,目的是为了获取更多的监控数据(虚拟主机,upstream等) nginx下载 http://nginx.org/download/nginx-1.20.2.tar.gz nginx-module-vts下载 https://github.com/vozlt/nginx-module-vts/archive/refs/tags/v0.2…

9.5K Star,又一款超棒开源轻量自动化运维平台

Hi,骚年,我是大 G,公众号「GitHub指北」会推荐 GitHub 上有趣有用的项目,一分钟 get 一个优秀的开源项目,挖掘开源的价值,欢迎关注。 一个好的运维平台就变得非常重要了,可以节省大量的人力和物…

冯诺依曼体系结构 与 操作系统

一、冯诺依曼体系结构 深入理解冯诺依曼体系结构 计算机的出现就是为了解决实际问题, 所以把问题交给计算机,计算机经过处理,得到一个结果反馈给我们,所以这中间就必然涉及到了输入设备,中央处理器(包括运算器和控制器)和输出设备…

【读后感】《枪炮、病菌与钢铁》人类社会的命运

初看这个书名其实感到困惑,风马牛不相及的三个名词怎么就凑到一起了,这书是讲什么的。 先说结论,讲的是人类历史,具体是1.3万年前开始至今的历史以及现代世界格局的形成,1.3万年前从这个时间节点以后,不论…

勇宝趣学JavaScript ES6第二章(解构赋值)

在ES6中,我们经常使用到解构赋值这个知识点,今天我们就来好好讲讲这一小部分知识点。咱们争取这回一次性讲明白。 今天是元宵节,祝大家节日快乐,只有我自己还在无聊的码字。 给我点个赞吧,嘿嘿!&#xff01…

MySQL数据库进阶第四篇(视图/存储过程/触发器)

文章目录 一、视图简单介绍与基础语法二、视图的检查选项三、视图的更新四、视图的作用五、存储过程的概念与特点六、存储过程的 创建,调用,查看,删除七、存储过程 — 系统变量八、存储过程 — 用户定义变量九、存储过程 — 局部变量十、存储…

acwing算法学习笔记 ------ 双链表

1、定义 这里可以做一个投机取巧,我们不再像单链表去用head去存头和尾,直接让r[0] 1,l[1] 0; idx 2.进行初始化, 解释一下l[N] 和 r[N] l[N]:是表示指向左面下一个节点下标, r[N]:表示指向下一个节点的下标。大家不用担心i…

[VNCTF2024]-PWN:shellcode_master解析(orw,用mmap代替read读文件)

查看保护 查看ida 在sandbox函数中,函数先使用了seccomp_init初始化,允许了所有系统调用,再用seccomp_rule_add来禁用掉了部分系统调用,其中包括execve和read seccomp_init函数可以进行系统调用全禁用和全允许初始化 seccomp_ru…

《高质量的C/C++编程规范》学习

目录 一、编程规范基础知识 1、头文件 2、程序的板式风格 3、命名规则 二、表达式和基本语句 1、运算符的优先级 2、复合表达式 3、if语句 4、循环语句的效率 5、for循环语句 6、switch语句 三、常量 1、#define和const比较 2、常量定义规则 四、函数设计 1、参…

python_pyecharts绘制漏斗图

python-pyecharts绘制漏斗图 from pyecharts.charts import Funnel from pyecharts import options as opts# 数据 data [("访问", 100), ("咨询", 80), ("订单", 60), ("点击", 40), ("展现", 20)]# 创建漏斗图 funnel …

uvloop,一个强大的 Python 异步IO编程库!

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站零基础入门的AI学习网站~。 目录 ​编辑 前言 什么是uvloop库? 安装uvloop库 使用uvloop库 uvloop库的功能特性 1. 更…

【信息提取】FindSomething 浏览器插件

下载地址 FindSomething 浏览器插件 概述 在网页的源代码或js中找到一些有趣的东西 FindSomething 用于快速在网页的html源码或js代码中提取一些有趣的信息,包括可能请求的资源、接口的url,可能请求的ip和域名,泄漏的证件号、手机号、邮箱…