<返回更多

Redis轻松添加从节点:零阻塞、零烦恼,系统性能再飙升

2023-11-23  微信公众号  数据库干货铺
加入收藏

一、措施

当向redis主节点添加从节点时,可以采取以下措施以最大程度地减少对主节点的阻塞和影响:

二、具体操作

1、配置复制积压缓冲区

通过配置复制积压缓冲区大小,我们可以在添加从节点时缓解主从节点之间的网络延迟。

在主节点的redis.conf文件中添加以下配置:

repl-backlog-size 10mb  # 适当调整大小,根据需求设置

或 通过config set 命令进行设置。

config set repl-backlog-size 10mb

这个缓冲区将保存历史复制数据,确保即使在添加从节点期间也能保留完整的复制记录。

2、配置复制延迟

调整从节点的复制延迟,以确保从节点稍微滞后于主节点,减轻主节点的复制压力。执行以下命令:

CONFIG SET replica-replica-lag 5  # 适当调整延迟时间

这样可以确保从节点不会对主节点造成过大的负担。

3、增加主节点资源

如果主节点负载较重,考虑增加主节点的资源。增加内存、CPU等可以提高主节点的处理能力,使其更好地处理复制请求和其他客户端请求。不过,在现实情况下,一般没有操作空间,因为主库主机在使用,无法扩容CPU或内存(非绝对,有的虚拟化方式可以做到在线扩容)

4、控制并发复制连接数

通过限制从节点的并发复制连接数,可以避免主节点过载。在从节点上执行以下命令:

CONFIG SET replica-max-replication-jobs 5  # 适当调整连接数

这有助于确保添加从节点时的流量控制,避免对主节点的并发请求过多。

5、从节点的磁盘写入延迟

通过配置repl-diskless-sync-delay参数,可以调整从节点在同步期间的磁盘写入频率。这对于降低从节点对磁盘的写入负载很有帮助。

CONFIG SET repl-diskless-sync-delay 5  # 适当调整延迟时间

6、从节点的最大内存限制

Redis从节点可以配置一个最大使用的内存量,以确保不会占用过多系统资源。

CONFIG SET maxmemory 8gb  # 适当调整内存限制

7、从节连接超时时间设置

根据系统的需要,你可能需要调整从节点的连接超时等设置。

CONFIG SET repl-timeout 60  # 适当调整超时时间

8、从节点检活时间修改

repl-ping-slave-period:该参数定义主节点定期检查从节点是否存活的时间间隔。增加这个间隔可能减轻主节点的负载,但会使主从节点之间的同步变得更加滞后。

CONFIG SET repl-ping-slave-period 60  # 适当调整间隔时间

9、复制积压缓冲区存活时间

repl-backlog-ttl:该参数定义复制积压缓冲区中数据的最大存活时间。适当调整可以在一定程度上控制主从节点之间的延迟。

CONFIG SET repl-backlog-ttl 3600  # 适当调整 TTL 时间

10、repl-disable-tcp-nodelay:

默认情况下,Redis使用TCP_NODELAY选项来减少传输延迟。但在某些情况下,你可能希望禁用这个选项以减轻网络负担。

CONFIG SET repl-disable-tcp-nodelay yes

11、复制刷盘同步参数设置

repl-diskless-sync:在磁盘同步时,Redis默认会写入一个临时文件。通过启用磁盘同步,你可以选择避免写入磁盘。

CONFIG SET repl-diskless-sync yes

12、从节点写入延迟

涉及min-replicas-to-write和min-replicas-max-lag,这两个参数用于在高可用性(HA)设置中,定义最小数量的从节点确认写入操作以及最大的允许延迟。

CONFIG SET min-replicas-to-write 3
CONFIG SET min-replicas-max-lag 10

三、建议

Redis 单个实例内存使用过大可能会导致系统性能下降,甚至影响整个系统的稳定性。以下是一些方式可以避免Redis单个实例内存使用过大:

# 在redis.conf文件中启用压缩
activate-key-compression yes
# 在redis.conf文件中设置最大内存限制
maxmemory 8gb
关键词:Redis      点击(18)
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多Redis相关>>>