Redis 主从架构怎么配置只读从库

陌伟酱_6757

陌伟酱_6757

2026-07-08

672人浏览

原创

redis主从架构中只读从库需服务端配置(如replica-read-only yes)、客户端连接隔离(如lettuce的readfrom.slave)、应用层路由管控(主写从读严格分离)三重协同,缺一不可。

redis 主从架构怎么配置只读从库

Redis 主从架构中,配置只读从库不是单靠一个开关就能完成的事,而是需要服务端配置、客户端连接方式、应用层逻辑三方面协同落实。光在 redis.conf 里设 slave-read-only yes 是基础,但容易被绕过——比如客户端发 READWRITE 命令,或用低层驱动直连后误调写操作。

服务端:强制从库只读并防止绕过

这是第一道防线,必须显式配置且持续验证:

  • 在从库的 redis.conf 中明确设置:
    slave-read-only yes(Redis 5.0+ 推荐用 replica-read-only yes,语义更清晰)
  • 重启从库使配置生效,并用命令确认:
    redis-cli -h {slave-ip} -p 6379 CONFIG GET replica-read-only → 应返回 ["replica-read-only","yes"]
  • 执行 INFO replication,检查 role:slave 和 connected_slaves 是否正常
  • 若使用 Redis 6+ ACL,确保连接用户没有 +set、+del 等写权限;ACL 权限优先级高于 replica-read-only,可兜底拦截

客户端:按只读意图建立连接,不混入写逻辑

服务端只拦命令,不拦连接行为。客户端必须主动“选对路”,且避免写调用:

Redis Skill - 高性能缓存管理
Redis Skill - 高性能缓存管理

Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。

下载
  • Lettuce(Java):不用 RedisClient.create() 直连从库 IP,而要用 MasterSlave.connect() + ReadFrom.SLAVE_PREFERRED 或 ReadFrom.SLAVE。它会自动发现从节点并路由读请求,故障时按策略降级
  • redis-py(Python):不能简单 redis.Redis(host="slave-ip", port=6379) 就完事。应为读操作单独创建连接实例,并在业务代码中严格隔离——写操作走主库连接,读操作走从库连接,禁止复用同一 client 对象发写命令
  • 无论哪种客户端,都不要在读连接上调用 SET、INCR、DEL 等命令。Lettuce 不会提前拦截,错误会在执行时由 Redis 返回 READONLY You can't write against a read only replica.

应用层:路由隔离与监控兜底

配置和客户端只是手段,真正落地靠架构设计:

  • 在服务发现或配置中心层面,把主库地址和从库地址分开管理。例如 Spring Cloud Config 中定义 redis.master.url 和 redis.slave.urls,让不同数据源天然隔离
  • 在 DAO 层或 Repository 层封装读写逻辑:写方法固定用主库模板,读方法固定用从库模板,禁止跨模板调用
  • 部署监控脚本,定时检查所有从库的 replica-read-only 配置值和 master_link_status,异常时触发告警甚至自动修复

只读从库不是“配完就安全”,而是要让服务端拒绝、客户端不发、应用层不混——三层叠加,缺一不可。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

redis

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

920

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2912

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

976

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

869

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

434

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2636

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4912

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

787

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习