DBAtlas · 数据库运维图谱

READONLY: READONLY You can't write against a read only replica(不能对只读副本执行写入)

Redis

含义

写命令被发送到副本(slave)节点。副本默认是只读的;写入只能在 master 上执行。

原因

客户端连接的是副本而非 master、故障转移后旧 master 变成了副本、Sentinel/Cluster 中错误路由到了错误节点,或负载均衡器将写请求转发到了副本。

解决方法

将写请求路由到 master 节点。如果使用 Sentinel,从 Sentinel 查询当前 master(SENTINEL get-master-addr-by-name)。在 Cluster 中,写入正确分片的 master。在客户端库中配置读写分离。故障转移后刷新连接,使其指向新的 master。

在 DBAtlas 中打开 →

同一数据库的其他条目