redis常用部署架构之redis分片集群。

redis  3.x版本后开始支持

作用:

1.提升数据读写速度

2..提升可用性

分片集群就是将业务服务器产生的数据储存在不同的机器上。

redis分片集群的架构

如上图所示,会将数据分散存储到不同的服务器上,相比于之前来说,redis要处理所有缓存数据的读写,而现在数据是分散到不同的服务器上,显然相比于之前来说读写速度会有很大的提升。

redis的分片集群还有一个特性就是会随机两两配对构建成一对主从复制关系。

在分片集群中每份数据都是独立的关系,并不是将一份完整的数据拆分成多份,而这每份数据之间可能有关系,可能没关系。

redis分片集群的读写原理

在redis分片集群中存储的数据都是以键值对的形式存储到redis分片集群中。

缓存的目的是为了加速

数据缓存最重要的是当寻找数据的时候,数据的命中率。【即能不能在最少的时间内找到需要的数据。】

在计算机中对数据进行哈希运算,不管是什么数据都可以被哈希算法运算为一个数字,而这个数字的大小总是固定在0-2的32次方之间。

在redis分片集群中一共会产生16384哈希槽,【而这16384个哈希槽会被平均分给每个redis节点。每个redis负责不同槽位的读写。】

如上图所示,在redis分片集群中对于数据的存储都是对这个key进行哈希运算,随后拿运算结果,除以16384取余,拿到余数,判断这个余数是由哪个redis节点负责的,将这个数据储存到哪个redis节点上。

哈希运算对象仅键(Key),与值(Value)无关。

redis分片集群的部署

1.分别在两台服务器上安装redis

2.创建实例目录,拷贝配置文件

3.编辑实例的配置文件

如上图所示,这是启动redis软件的集群功能,将来可以使用这个redis实例去部署集群。

如上图所示,这是集群的配置文件。将redis实例添加到集群中的时候还需要有一个相应的配置文件。

如上图所示,这是集群之间相互通信的超时时间单位是毫秒。

如上图所示,我们将7001的配置文件拷贝给7002的实例一份,随后将这个拷贝文件中的7001全部替换成7002.

4.启动实例

如上图所示,多启动的端口就是多个redis实例之间进行相互通信的。

5.创建分片集群

如上图所示,先去创建对应的目录,随后复制对应的配置文件,随后用for循环和sed工具去修改配置文件中的内容,

如上图所示,此时这个另外一台机器上的三个redis实例已经启动成功,

如上图所示,这里的1表示每个主服务器配置1个从服务器,当然每个主服务器也可以配置多个从服务器。

6.连接集群,测试数据读写

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

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

相关文章

分布式数据库介绍

分布式数据库介绍 一、定义与核心概念 分布式数据库是一种在物理上分散存储、逻辑上统一管理的数据管理系统,其核心特征包括数据分布性、逻辑关联性、场地透明性和可扩展性。根据最新定义,分布式数据库需具备分布式事务处理能力、平滑扩展能力&#xf…

MybatisPlus(SpringBoot版)学习第五讲:条件构造器和常用接口

目录 1.wrapper介绍 2.QueryWrapper 2.1 例1:组转查询条件 Compare Nested Join Func 2.2 例2:组装排序条件 2.3 例3:组装删除条件 2.4 例4:条件的优先级 2.5 例5:组装select子句 2.6 例6:实现子查…

OkHttp 的证书设置

在 Android 开发中,通过 OkHttp 自定义 SSLSocketFactory 和 X509TrustManager 可以有效增强 HTTPS 通信的安全性,防止中间人攻击(如抓包工具 Charles/Fiddler 的拦截)。以下是实现防抓包的关键技术方案: 一、Okhttp设…

计算机视觉算法实战——手术导航:技术、应用与未来

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​ ​​​​​​​​​ ​​ 1. 手术导航中的计算机视觉:领域介绍 计算机视觉在手术导航领域的应用代表了现代医学与人工智…

【科研绘图系列】R语言绘制PCA与变量的相关性散点图(scatter plot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据画图输出图片系统信息介绍 【科研绘图系列】R语言绘制PCA与变量的相关性散点图(scatter plot) 加载R包 library(tidyverse) library(ggpubr)数据下载 …

深度解析Spring Boot可执行JAR的构建与启动机制

一、Spring Boot应用打包架构演进 1.1 传统JAR包与Fat JAR对比 传统Java应用的JAR包在依赖管理上存在明显短板,依赖项需要单独配置classpath。Spring Boot创新的Fat JAR(又称Uber JAR)解决方案通过spring-boot-maven-plugin插件实现了"…

安科瑞微电网能量管理控制箱,光伏发电的守护者

安科瑞顾强 随着工业的发展,很多用电设备和工厂设备采用直流系统供电,直流系统的正极和负极不接地。对于不接地(IT)配电系统,应该进行绝缘电阻的监控以保证供电系统的安全运行。 AIM-D100-TS 系列直流绝缘监测仪可以…

[计算机网络]网络I/O模型

欢迎来到啾啾的博客🐱。 这是一个致力于构建完善的Java程序员知识体系的博客📚,记录学习的点滴,分享工作的思考、实用的技巧,偶尔也分享一些杂谈💬。 欢迎评论交流,感谢您的阅读😄。…

Vue中使用JsonView进行JSON数据展示

前言 最近在开发公司的管理系统的操作日志模块,要查看某条操作日志的请求参数,要将请求的参数以 JSON 格式的形式展示出来,于是用到了Vue-JSON-Viewer 这个插件。 一、Vue-JSON-Viewer 基础入门 插件简介 Vue-JSON-Viewer 是一个用于在Vue项…

vue vue3 走马灯Carousel

背景: 在项目中需要展示多张图片,但在页面上只有一张图片的有限位置,此时考虑使用轮播图实现多张图片的展示。element组件官网有走马灯Carousel的组件详细介绍。 实现效果: 官网链接:点击跳转 核心代码: …

重学vue3(三):vue3基本语法及使用

组合式 API是vue3 的核心特性&#xff0c;替代 Vue2 的选项式 API&#xff0c;强调逻辑复用和代码组织。基本语法如下&#xff1a; <script setup> import { ref, reactive, computed, onMounted } from vue;// 1. 响应式数据 const count ref(0); // 基本类…

Spring Boot分布式项目异常处理实战:从崩溃边缘到优雅恢复

当单体应用拆分成分布式系统&#xff0c;异常就像被打开的潘多拉魔盒&#xff1a;RPC调用超时、分布式事务雪崩、第三方接口突然罢工…在最近的电商大促中&#xff0c;我们的系统就经历了这样的至暗时刻。本文将用真实代码示例&#xff0c;展示如何构建分布式异常处理体系。 一…

导出sql命令

除了之前提到的 \G 命令&#xff0c;以下是其他优化 MySQL 查询结果显示的方法&#xff0c;供你参考&#xff1a; --- ### 1. **使用 \T 命令导出结果到文件** - 在 MySQL 命令行中&#xff0c;使用 \T 文件名 可以将查询结果以表格形式导出到指定文件&#xff0c;便于后续…

TDengine 3.3.2.0 集群报错 Post “http://buildkitsandbox:6041/rest/sql“

原因&#xff1a; 初始化时处于内网环境下&#xff0c;Post “http://buildkitsandbox:6041/rest/sql“ 无法访问 修复&#xff1a; vi /etc/hosts将buildkitsandbox映射为本机节点 外网环境下初始化时没有该问题

深度解析 BPaaS:架构、原则与研发模式探索

在当今复杂多变的业务环境下&#xff0c;软件开发面临着诸多挑战&#xff0c;如何有效地管理业务复杂性并实现系统的可扩展性成为关键。BPaaS应运而生&#xff0c;它作为一种创新的理念和架构模式&#xff0c;改变着企业研发的方式。本文将深入探讨 BPaaS 是什么&#xff0c;以…

如何在linux中部署dns服务 主备dns (详细全过程)

环境centos 7.9 主DNS&#xff1a;192.168.60.131 备DNS&#xff1a;192.168.60.134 我以 chenxingyu0.com 指向 192.168.60.200为例 首先是主dns #!/bin/bash# 检查是否为 root 用户 if [ "$(id -u)" ! "0" ]; thenecho "请使用…

操作系统导论——第13章 抽象:地址空间

一、早期系统 从内存来看&#xff0c;早期的机器并没有提供多少抽象给用户。基本上&#xff0c;机器的物理内存如图13.1所示 操作系统曾经是一组函数&#xff08;实际上是一个库&#xff09;&#xff0c;在内存中&#xff08;在本例中&#xff0c;从物理地址0开始&#xff09;&…

云端存储新纪元:SAN架构驱动的智能网盘解决方案

一、企业存储的"不可能三角"破局 1.1 传统存储架构的困局 性能瓶颈&#xff1a;NAS架构在1000并发访问时延迟飙升300%容量限制&#xff1a;传统RAID扩容需停机维护&#xff0c;PB级存储扩展耗时超48小时成本矛盾&#xff1a;全闪存阵列每TB成本高达$3000&#xff0…

Android adb自身调试log开关

本文介绍下如何打开adb源码中的debug log 1.adb源码log是可以动态打开和关闭的&#xff0c;控制逻辑代码如下 static NoDestructor<std::mutex> log_mutex; static NoDestructor<CachedProperty> log_property GUARDED_BY(log_mutex)("debug.adbd.logging&q…

Axure RP 9.0教程: 基于动态面板的元件跟随来实现【音量滑块】

文章目录 引言I 音量滑块的实现步骤添加底层边框添加覆盖层基于覆盖层创建动态面板添加滑块按钮设置滑块拖动效果引言 音量滑块在播放器类APP应用场景相对较广,例如调节视频的亮度、声音等等。 I 音量滑块的实现步骤 添加底层边框 在画布中添加一个矩形框:500 x 32,圆…