Redis预分区
创始人
2024-04-30 23:29:21
0

了解预分区前最好先了解一下分区。

分区存在一个问题,除非我们使用 Redis 作为缓存,否则增加和删除节点都是件麻烦事,而使用固定的键和实例映射要简单得多。

然而,数据存储的需求可能一直在变化。今天可接受 10 个 Redis 节点,但明天可能就需 50 个节点。

因为 Redis 只有相当少的内存占用且轻量级(一个空闲的实例只使用 1MB 内存),为防止以后的扩容,最好的办法就是一开始就启动较多实例。即便只有一台服务器,也可以一开始就让Redis以分布式的方式运行,使用分区来运行多个 Redis 实例在一台服务器上。

开始就可以选择很多数量的实例。例如:32 或 64 个实例能满足大多数用户,并且为未来的增长提供足够的空间。

随着时间的推移,数据存储需求总会发生变化。今天可能需要10个Redis节点就够了,但是明天可能就需要增加到50个节点。为防止以后的扩容,最好的办法就是一开始就启动较多实例。

这样,当数据存储增长,需要更多 Redis 服务器,你要做的就是简单地将实例从一台服务器移动到另外一台(而不用考虑重新分区的问题)。当你新添加了第一台服务器,你就需要把一半的 Redis 实例从第一台服务器搬到第二台,以此类推。

简单的说就是为了实现在线动态扩容和数据分区,Redis 的作者提出了预分区的方案,实际上就是在同一台机器上部署多个 Redis 实例,当容量不够时将多个实例拆分到不同的机器上,这样就达到了扩容的效果。


使用 Redis 复制,就可以在很小或者根本不需要停机的时间内完成移动数据:

  1. 在新服务器上启动一个空实例
  2. 移动数据,配置新实例为源实例的从服务
  3. 停止客户端
  4. 更新被移动实例的服务器 IP 地址配置
  5. 向新服务器上的从节点发送 SLAVEOF NO ONE 命令
  6. 以新的更新配置启动你的客户端
  7. 最后关闭掉旧服务器上不再使用的实例

以上拆分流程是 Redis 作者提出的一个平滑迁移的过程,不过该拆分方法还是很依赖 Redis 本身的复制功能的。如果主库数据文件过大,复制的过程也会相应的变长,同时也会给主库带来压力。

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...