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


CONFIG SET repl-disable-tcp-nodelay yes11、复制刷盘同步参数设置repl-diskless-sync:在磁盘同步时,Redis默认会写入一个临时文件 。通过启用磁盘同步,你可以选择避免写入磁盘 。
CONFIG SET repl-diskless-sync yes12、从节点写入延迟涉及min-replicas-to-write和min-replicas-max-lag,这两个参数用于在高可用性(HA)设置中,定义最小数量的从节点确认写入操作以及最大的允许延迟 。
CONFIG SET min-replicas-to-write 3CONFIG SET min-replicas-max-lag 10三、建议Redis 单个实例内存使用过大可能会导致系统性能下降,甚至影响整个系统的稳定性 。以下是一些方式可以避免Redis单个实例内存使用过大:

  • 设置合理的过期时间:如果你的数据集中有很多过期的键,确保设置了合理的过期时间,以便Redis可以自动清理不再需要的键 。使用 EXPIRE 命令或在 SET 命令中添加 EX 选项来设置过期时间 。
  • 优化数据结构:选择适当的数据结构,以减小存储空间 。例如,如果可以使用 HASH 代替 STRING,或者使用 ZSET 代替 SET,就可以有效地减小内存占用 。
  • 使用合理的数据存储方式:使用 HASH 或 ZSET 等数据结构存储多个相关字段,而不是使用多个独立的 STRING 类型 。这可以减少内存的开销 。
  • 启用压缩功能:Redis 6.0 以后的版本支持对字符串进行压缩 。启用压缩可以减小存储空间 , 特别是当存储的是文本数据时 。
# 在redis.conf文件中启用压缩activate-key-compression yes
  • 分片(Sharding):将数据分散到多个Redis实例中,以减小每个实例的内存使用 。这种方式需要对应用程序进行修改以支持分片 。
  • 使用内存淘汰策略:Redis 提供了多种内存淘汰策略,例如 volatile-lru、allkeys-lru、volatile-ttl 等 。选择适合你业务场景的淘汰策略,确保及时清理不再需要的键 。
  • 限制每个数据集的大?。荷柚?maxmemory 参数,限制Redis使用的内存总量 。当内存达到这个限制时,Redis会根据所配置的淘汰策略自动删除一些键 。
# 在redis.conf文件中设置最大内存限制maxmemory 8gb
  • 做好监控和优化:定期监控Redis的内存使用情况,使用Redis自带的 INFO 命令或者监控工具 。根据监控结果,及时采取优化措施 。

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


推荐阅读