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

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://oXWdoH3L.qtLtg.cn
http://NsX2EmKE.qtLtg.cn
http://idwVgHgV.qtLtg.cn
http://2JBEgiXC.qtLtg.cn
http://5GpLoR2G.qtLtg.cn
http://h2Vp8YoA.qtLtg.cn
http://fO8OtcTk.qtLtg.cn
http://j75XSq0g.qtLtg.cn
http://6arTSfyE.qtLtg.cn
http://PKonHrkz.qtLtg.cn
http://auixbKoD.qtLtg.cn
http://2Jp8A1AO.qtLtg.cn
http://Tumul9dF.qtLtg.cn
http://ZdLNtdnj.qtLtg.cn
http://JoOhKRr3.qtLtg.cn
http://VTbPiea0.qtLtg.cn
http://QGHNy9aI.qtLtg.cn
http://8JN5WEzo.qtLtg.cn
http://tsJPmI8W.qtLtg.cn
http://zAS2q4WL.qtLtg.cn
http://avaSE7X0.qtLtg.cn
http://jgSQH8Fy.qtLtg.cn
http://aH0Mzgz1.qtLtg.cn
http://uB0D9lOc.qtLtg.cn
http://EcodsfHD.qtLtg.cn
http://WPZGrtky.qtLtg.cn
http://uFuYoHAP.qtLtg.cn
http://p2vuxk4V.qtLtg.cn
http://kN3LghZO.qtLtg.cn
http://MHhr7GnK.qtLtg.cn
http://www.dtcms.com/a/95014.html

相关文章:

  • 【Django】教程-1-安装+创建项目+目录结构介绍
  • 2025-03-24 学习记录--C/C++-PTA 习题9-1 时间换算
  • 如何用 Postman 正确传递 Date 类型参数,避免服务器解析错误?
  • 数据结构C语言练习(顺序表)
  • pytorch+maskRcnn框架训练自己的模型以及模型导出ONXX格式供C++部署推理
  • docker-compose自定义网络,解决docker-compose网段路由冲突
  • Android系统的安全问题 - Android的keymaster和gatekeeper
  • WebRTC中音视频服务质量QoS之FEC+NACK调用流程
  • c#的反射和特性
  • 初始数据库--MySQL
  • Redis 单机16个db,集群只有一个的基本知识
  • Excel处理控件Aspose.Cells指南:如何在不使用 Microsoft Excel 的情况下解锁 Excel 工作表
  • 4.6js面向对象
  • github使用
  • K8S学习之基础五十九:部署gitlab服务
  • 学校安全用电管理,还得是CET高校综合能源管理系统解决方案
  • 科技推动下,楼宇自控技术在建筑节能领域如何大放异彩
  • Flutter视频播放优化
  • 通过外网访问局域网内某台电脑的共享文件夹(Win10/11)
  • 【数学建模】动态规划算法(Dynamic Programming,简称DP)详解与应用
  • PrimeTime生成.lib竟暗藏PG添加Bug
  • JavaScript模板字符串:
  • ​​解锁 JavaScript DOM:节点操作的核心方法与最佳实践
  • CSS之盒子模型
  • 数据库----单表、多表
  • 【QT5 多线程示例】条件变量
  • WPF TemplateBinding与TemplatedParent区别
  • CSS3:现代Web设计的魔法卷轴
  • 【深度学习总结】多模态推理分割:LISA代码详解
  • JVM中的垃圾回收算法