redis7基础篇3 redis的集群模式3

一  集群模式

1.1 redis的集群模式

Redis集群模式,实现数据集在多个节点进行共享,支持多个master节点。

Redis集群支持多个master,每个master节点又可以挂载多个slave;由于cluster自带sentinel的故障转移机制,内置高可以用的支持,无需要去使用哨兵模式。

客户端与redis的节点连接,不需要连接集群中所有的节点,只需要任意连接集群中的一个可用节点即可。

Redis集群不保证强一致性,这意味着在特定的条件下,redis集群可能会丢掉一些被系统收到的写入请求命令。

1.2 redis的哈希槽位slot的概念

Redis槽位(Slot)是Redis集群中的一个重要概念,它是一个0到16383之间的整数,用于表示一个数据分片。Redis集群将所有的键均匀分布在16384个槽位上,每个槽位存储一个或多个键。这种分片机制旨在将数据分散存储在多个节点上,以提高数据的并发访问能力和存储容量。

Redis槽位的主要作用是实现数据分片,从而支持Redis集群的横向扩展。通过将数据分散存储在多个节点上,Redis集群能够

提高并发访问能力‌:多个节点可以同时处理请求,提高系统的吞吐量。

增强存储容量‌:随着节点的增加,集群的总存储容量也会相应增加。

实现负载均衡‌:数据均匀分布在各个节点上,避免单点过载。

1.3 redis的哈希槽位slot的作用

Redis集群中没有使用一致性hash,而是使用hash槽的概念,redis集群中有16384个哈希槽,每个key通过CRC16校验后对16384取模得到hash值,来决定存储到那个槽,集群中的每个节点负责一部分hash槽。

使用redis集群时我们将数据分散到多台redis实例上,每个实例上的数据为整个数据的一个分片。如下:

最大的优势:方便扩容和数据分派查找;无论添加或删除或改变某个节点的哈希槽的数量不会造成集群不可用状态。

1.4 redis的槽位映射的三种方式

Redis的slot的槽位映射,一般有3种模式:

1.哈希取模 hash(key/3);对机器节点数进行取模,缺点:新增机器或者宕机,需要重新计算。

2.一致性hash:一致性Hash算法是对2^32取模。缺点:数据的分布和节点的位置有关,因为这些节点不是均匀的分布在哈希环上的,所以数据在进行存储时达不到均匀分布的效果。即一致性hash算法存在数据倾斜问题。

3.hash槽:Redis集群并没有使用一致性hash而是引入了哈希槽的概念。Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽,集群的每个节点负责一部分hash槽。HASH_SLOT = CRC16(key) mod 16384

1.5 为何redis的最大哈希槽为16384?

Redis集群的最大槽数设计为16384个是基于性能、资源利用和实际使用情况的综合考虑。这个数值既保证了集群的稳定性和性能,又避免了不必要的资源浪费。2的14方为此值。为什么 Redis 集群的最大槽数是 16384 个?_为什么redis集群的最大槽数是16384个-CSDN博客

二   集群模式 的搭建

2.1 redis的集群模式

集群模式架构图:3主3从

2.2 redis集群实例部署

由于环境资源限制,搭建3台虚拟机,在每台上使用两个不同端口进行区分,构建成6台机器。

1.IP:192.168.111.175+端口6381/6382  

配置文件:vim  /myredis/cluster/redisCluster6381.conf

bind 0.0.0.0

daemonize yes

protected-mode no

port 6381

logfile "/myredis/cluster/cluster6381.log"

pidfile /myredis/cluster6381.pid

dir /myredis/cluster

dbfilename dump6381.rdb

appendonly yes

appendfilename "appendonly6381.aof"

requirepass 111111

masterauth 111111

cluster-enabled yes

cluster-config-file nodes-6381.conf

cluster-node-timeout 5000

配置文件:vim  /myredis/cluster/redisCluster6382.conf

bind 0.0.0.0

daemonize yes

protected-mode no

port 6382

logfile "/myredis/cluster/cluster6382.log"

pidfile /myredis/cluster6382.pid

dir /myredis/cluster

dbfilename dump6382.rdb

appendonly yes

appendfilename "appendonly6382.aof"

requirepass 111111

masterauth 111111

cluster-enabled yes

cluster-config-file nodes-6382.conf

cluster-node-timeout 5000

2.IP:192.168.111.172+端口6383/6384

配置文件:vim  /myredis/cluster/redisCluster6383.conf

bind 0.0.0.0

daemonize yes

protected-mode no

port 6383

logfile "/myredis/cluster/cluster6383.log"

pidfile /myredis/cluster6383.pid

dir /myredis/cluster

dbfilename dump6383.rdb

appendonly yes

appendfilename "appendonly6383.aof"

requirepass 111111

masterauth 111111

cluster-enabled yes

cluster-config-file nodes-6383.conf

cluster-node-timeout 5000

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【嵌入式硬件】直流电机驱动相关

项目场景: 驱动履带车(双直流电机)前进、后退、转弯 问题描述 电机驱动MOS管烧毁 电机驱动采用IR2104STRH1R403NL的H桥方案(这是修改之后的图) 原因分析: 1.主要原因是4路PWM没有限幅,修改…

部署项目添加工程名的步骤

1.首先要在router下进行工程名添加 2.其次在vue.config.js中添加publicpath 3.在nginx配置文件中 location /my-app/ {try_files $uri $uri/ /my-app/index.html; }

SCAU期末笔记 - 数据库系统概念往年试卷解析

数据库搞得人一头雾水,题型太多太杂,已经准备摆烂了。就刷刷往年试卷,挂不挂听天由命。 2019年 Question 1 选择题 1. R ∩ S R∩S R∩S等于一下哪个选项? 画个文氏图秒了 所以选A. R ∩ S R − ( R − S ) R∩SR-(R-S) R∩…

【竞技宝】CS2:HLTV 2024 TOP11-w0nderful

北京时间2025年1月4日,HLTV年度选手排名正在持续公布中,今日凌晨正式公布了今年的TOP11为NAVI战队的w0nderful。 选手简介 w0nderful是一名来自于乌克兰的CS选手,现年20岁,目前在比赛中司职狙击手。w0nderful于2020年开启了自己的…

基层医联体医院患者历史检验检查数据的快速Python编程分析

​​​​​​​ 一、引言 1.1 研究背景与意义 在当今数字化医疗时代,医疗数据呈爆炸式增长,涵盖患者的基本信息、病史、检验检查结果、治疗方案等各个维度。这些海量且复杂的数据蕴含着巨大价值,为精准医疗决策提供了关键依据。通过对患者历史检验检查数据的深入对比分析…

Java SpringBoot使用Apache POI导入导出Excel文件

点击下载《Java SpringBoot使用Apache POI导入导出Excel文件(源代码)》 1. Apache POI 简介 Apache POI 是一个强大的 Java 库,用于处理 Microsoft Office 文档,包括 Excel 文件(.xls 和 .xlsx)。在 Java Spring Boot 项目中&am…

AWS 申请证书、配置load balancer、配置域名

申请AWS证书 点击 request 申请完证书,AWS 会验证你对于域名的所有权,有两种方式,DSN 验证和邮箱验证。 这里说一下DSN 验证,上图中 Domains 中有CNAME name 和 CNAME value 。 在domain 网站中添加一个CNAME DSN 项,…

三甲医院等级评审八维数据分析应用(五)--数据集成与共享篇

一、引言 1.1 研究背景与意义 随着医疗卫生体制改革的不断深化以及信息技术的飞速发展,三甲医院评审作为衡量医院综合实力与服务水平的重要标准,对数据集成与共享提出了更为严苛的要求。在传统医疗模式下,医院内部各业务系统往往各自为政,形成诸多“信息孤岛”,使得数据…

RIP配置实验

RIP配置实验 案例简介 天一公司下属三个分公司,属于不同的地区,三个公司之间用路由器连接,路由器名称分别为分别为 Router0、Router1、Router2,请把一公司的部门pc0,通过二公司路由器,连接三公司的部门pc1,公司之间通…

从零开始RTSP协议的实时流媒体拉流(pull)的设计与实现(一)

此文为系列文章,此系列主要讲解RTSP客户端的拉流及播放,文章持续更新,会从rtsp的基本协议讲起,如何一步步实现音视频的拉流过程,包括一系列涉及到的协议,rtsp,sdp, rtp(本…

大数据系列之:深入理解学习使用腾讯COS和COS Ranger权限体系解决方案,从hdfs同步数据到cos

大数据系列之:深入理解学习使用腾讯COS和COS Ranger权限体系解决方案,从hdfs同步数据到cos 对象存储COS对象存储基本概念COS Ranger权限体系解决方案部署组件COS Ranger Plugin部署COS-Ranger-Service部署COS Ranger Client部署 COSN 从hdfs同步数据到co…

docker Error response from daemon

问题 Error response from daemon: Get "https://index.docker.io/v1/search?qnginx&n25": read tcp 192.168.50.233:54354->54.198.86.24:443: read: connection reset by peer Unable to find image redis:latest locally docker: Error response from d…

域上的多项式环,整除,相通,互质

例1.已知 (R,,x)为域,请选出正确的说法:(A)(R,,x)也是整区; ABCD (B)R中无零因子; C)R在x运算上满足第一、二、三指数律; (D)R只有平凡理想; (E)R只有平凡子环。 域的特征: 域中,非0元素的加法周期 思考、在模7整数环R,中,…

登录的几种方式

使用Session完成登录 1. 手机号发送验证码 逻辑步骤: 校验手机号格式是否正确。生成验证码(例如使用Hutool工具类)。将手机号和验证码存入Session。返回验证码发送成功的响应。 2. 用户登录逻辑 逻辑步骤: 从Session中获取存…

电子电气架构 --- 中央HPC架构

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…

SMTP发送邮件的过程

(1)SMTP客户端首先请求与服务器端的25号端口建立TCP连接(1分)。(2)连接建立成功后,客户端和服务器通过握手阶段验证双方身份(1分)。(3)验证成功后,客户端首先向服务器端通告邮件发送…

数据挖掘——神经网络分类

神经网络分类 神经网络分类人工神经网络多层人工神经网络 误差反向传播(BP)网络后向传播算法 神经网络分类 人工神经网络 人工神经网络主要由大量的神经元以及它们之间的有向连接构成。包含三个方面: 神经元的激活规则 主要是指神经元输入…

MySQL 【多表查询】

一 . 概述 多表关系: 一对多(多对一) , 多对多 ,一对一 1) 一对一 案例: 用户 与 用户详情的关系 关系: 一对一关系,多用于单表拆分,将一张表的基础字段放在一张表中,其他详情字段放在另 一张表…

联发科MTK6771/MT6771安卓核心板规格参数介绍

MT6771,也被称为Helio P60,是联发科技(MediaTek)推出的一款中央处理器(CPU)芯片,可运行 android9.0 操作系统的 4G AI 安卓智能模块。MT6771芯片采用了12纳米工艺制造,拥有八个ARM Cortex-A73和Cortex-A53核心,主频分别…

dbeaver导入导出数据库(sql文件形式)

目录 前言dbeaver导出数据库dbeaver导入数据库 前言 有时候我们需要复制一份数据库,可以使用dbeaver简单操作! dbeaver导出数据库 选中数据库右键->工具->转储数据库 dbeaver导入数据库 选中数据库右键->工具->执行脚本 mysql 默…