首页 > 数据库 >redis自学(36)散列插槽

redis自学(36)散列插槽

时间:2024-04-17 16:34:06浏览次数:27  
标签:宕机 插槽 绑定 redis 36 num key 散列 节点

散列插槽

Redis会把每一个master节点映射到0~16383共16284个插槽(hash slot)上,查看集群信息时就能看到:

 

 

数据key不是与节点绑定,而是与插槽绑定。Reids会根据key的有效部分计算插槽值,分两种情况:

l Key中包含“{}”,且“{}”中至少包含1个字符,“{}”中的部分是有效部分

l Key中不包含“{}”,整个key都是有效部分

例如:key是num,那么就根据num计算,如果是{itcast}num,则根据itcast计算。计算方式是利用CRC16算法得到一个hash值,然后对16384取余,得到的结果就是slot值。

为什么要跟插槽绑定而不是跟节点绑定?因为reids的主节点可能会出现宕机的情况,或者是集群扩容增加了节点,或者是集群伸缩删除了节点。节点删除或者宕机了,数据也就跟着丢了,而跟插槽绑定,节点宕机了,可以将插槽绑定到活着的节点上,集群扩容时,也可以将插槽进行转移。

验证:

 

 

Set a的时候,就重定向到了15495插槽所在的7003上了

 

 

Get num又重定向到了2765插槽所在的7001上

 

 

标签:宕机,插槽,绑定,redis,36,num,key,散列,节点
From: https://www.cnblogs.com/bulesea/p/18141087

相关文章

  • 基于Redis实现基本抢红包算法
    简介:[key,value]的缓存数据库,Redis官方性能描述非常高,所以面对高并发场景,使用Redis来克服高并发压力是一个不错的手段,本文主要基于Redis来实现基本的抢红包系统设计.发红包模块:1:发红包模块流程图如下:  用户首先输入红包金额和红包个数,然后生成当前红......
  • 【概率论】4.16 P134 -136
    ......
  • 洛谷题单指南-数学基础问题-P3601 签到题
    原题链接:https://www.luogu.com.cn/problem/P3601题意解读:求l~r范围内所有qiandao(x)之和,qiandao(x)为小于等于x的数中,与x不互质的数的个数。注意取模。解题思路:欧拉函数定义:phi(x)=x*(1-1/p1)*(1-1/p2)*...*(1-1/pn),p1,p2...pn为x的所有质因子其中:phi(x)表示1~x中所......
  • redis自学(35)搭建分片集群
    分片集群结构主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决:l 海量数据存储问题l 高并发写的问题使用分片集群可以解决上述问题,分片集群特征:l 集群中有多个master,每个master保存不同数据,因此能存多少取决于master节点的数量,解决了海量数据存储的......
  • Redis
      关联知识点(1)关系型数据库、非关系型数据库(2)BSD协议(3)发布/订阅模式(4)Hash散列(5) Lua脚本(6)事件驱动模型参考文献(1)官网地址:https://redis.io/(2)源码地址:https://github.com/redis/redis(3)Redis在线测试:http://try.redis.io/(4)Redis命令参考:http:......
  • 什么是可散列(hashable)的数据类型
    在Python官方词汇表中,关于hashable类型的定义有这样一段话:Anobjectishashableifithasahashvaluewhichneverchangesduringitslifetime(itneedsahash()method),andcanbecomparedtootherobjects(itneedsaneq()method).Hashableobjectswhichcompa......
  • redis哨兵模式的原理及部署
    目录一、什么是哨兵模式1、为什么需要哨兵机制2、哨兵架构拓扑3、RedisSentinel的功能:二、搭建哨兵架构1、涉及主机2、拓扑结构3、设置一主两从4、master服务器状态5、编辑哨兵的配置文件6、启动哨兵7、验证哨兵端口8、查看哨兵日志9、验证当前sentinel状态三、故障转移1、redis......
  • 美团二面:如何保证Redis与Mysql双写一致性?连续两个面试问到了!
    引言Redis作为一款高效的内存数据存储系统,凭借其优异的读写性能和丰富的数据结构支持,被广泛应用于缓存层以提升整个系统的响应速度和吞吐量。尤其是在与关系型数据库(如MySQL、PostgreSQL等)结合使用时,通过将热点数据存储在Redis中,可以在很大程度上缓解数据库的压力,提高整体系统的......
  • Docker容器配置redis集群
    前言Redis集群是一种分布式数据库解决方案,旨在提供高性能、高可用性、可扩展性的数据存储服务。目前比较普遍流行的搭配则是三主三从配置,共6台redis服务进行集群配置。Redis的三主三从配置是一种集群模式,其中包含三个主节点和三个从节点。每个从节点对应一个主节点,当主......
  • redis中的缓存雪崩、穿透
    Redis在作为缓存系统时,可能会面临几种常见的问题,其中包括缓存雪崩和缓存穿透。这些问题都可能导致系统性能下降甚至服务不可用。了解它们的原因及解决方案对于设计高可靠性系统至关重要。缓存雪崩定义:缓存雪崩是指在同一时间大量的缓存项过期,导致大量请求直接打到数据库上,从而......