当前位置: 首页 > article >正文

Redis Cluster

概念

Redis Cluster采用多主多从的方式,支持开启多个主节点,每个主节点可以挂载多个从节点。

Cluster会将数据进行分片,将数据分散到多个主节点上,而每个主节点都可以对外提供读写服务。这种做法使得Redis突破了单机内存大小的限制,扩展了集群的存储容量。并且Redis Cluster也具备高可用性,因为每个主节点上都至少有一个从节点,当主节点挂掉时,Redis Cluster的故障转移机制会将某个从节点切换为主节点。

Redis Cluster是一个去中心化的集群,每个节点都会与其他节点保持互连,使用gossip协议来交换彼此的信息,以及探测新加入的节点信息。并且Redis无需任何代理,客户端会直接与集群中的节点直连。

分片方式

1.哈希取模

        类似HashMap的取模方式,只要hash计算的结果够分散,那么每个key都可以均匀分布到N个几点上。

        但是,如果要扩容或者缩容,会导致key重新计算存储位置,从而导致缓存失效。

2.一致性哈希

        将整个哈希值空间组织成一个虚拟的圆环。对key计算它的哈希值,确定它在环上的位置,从该位置沿着环顺指针的走,找到第一个节点,便是这个key应该存放的服务器节点的位置。

3.虚拟节点 + 一致性哈希

        映射关系为数据到虚拟节点,再由虚拟节点到实际节点。

集群搭建

1.由于Redis Cluster要求必须要至少6个节点,所以以最低要求3主3从为例。修改redis6390.conf --- redis6395.conf配置文件

        配置集群端口号

                port 6390

         开启守护进程

                deamonize yes   

        关闭保护模式

                protected-mode no

        将集群开启

                cluster-enabled yes

                cluster-config-file nodes-6390.conf

2.分配主从(--cluster-replicas 1:表示创建1主1从)

        ./redis-cli --cluster create 6组ip 端口 --cluster-replicas 1

3.分配完集群后,可能会报错---16384个槽位没有分配完。通过如下指令进行检查和修复

        redis-cli --cluster check 172.17.02:6379

        redis-cli --cluster fix 172.17.02:6379   #官方修复功能

数据存放位置

在任意主节点添加数据会自动将数据分配到对应槽位的对应节点,不一定会保存在当前节点。 


http://www.kler.cn/a/153698.html

相关文章:

  • Vue 3.0 响应性 基础
  • 原生video设置控制面板controls显示哪些控件
  • 迭代器与生成器
  • ESP32-Web-Server编程- 通过滑动条向 Web 提交数据
  • vue3 element-plus el-table表头冻结,表头吸顶
  • UiPath:人工智能和重新加速增长是 2024 年的好兆头
  • GoLong的学习之路,进阶,微服务之原理,RPC
  • 使用纯js码2个实用功能banner图标切换和表格制作
  • 【Python标准库】json
  • 【Android】Window和WindowManager
  • UData+StarRocks在京东物流的实践 | 京东物流技术团队
  • 快照读通过MVCC解决不可重复读当前读通过间隙锁解决幻读
  • Linux破解用户密码【基于redhat9】
  • 电子印章管理系统:是什么、3个平台推荐
  • Vulhub-信息泄露
  • 数据结构 / 队列 / 循环队列 / 概念
  • Redis基本命令
  • SQL-分页查询offset的用法
  • Linux部分基础指令讲解
  • Hdoop学习笔记(HDP)-Part.14 安装YARN+MR