在文档方面,他们建议监控命令。但是它会让整个系统的性能降低 50%,我该怎么做?使用 SSH 检查输出,直到我什么都看不到?
假设我有 3 台服务器:1 台是 redis 主服务器,1 台是 redis 从服务器,还有一台是我的网站查询 redis 主服务器。
我怎样才能从我的网站服务器发送命令,彻底做出回退到从属服务器的决定SLAVEOF NO ONE
?
我的第一步是使用简单的 ping 进行某种超时检查,以确保服务器在线。但对于 redis 的具体情况,我一无所知。
答案1
您可以使用 redis API 从检查节点连接并发送名为“ping”的 redis 命令。
这会告诉您它是否正在响应。但是您还想确保您正在与主服务器通信,因此我建议运行 info 命令来获取该信息。如果它们都失败了,则该节点处于离线状态。
但是,我也建议你不要总是假设每次连接尝试时同一个节点都是主节点。通过使用来自两者的信息,你可以更确定何时与主节点通信。
这部分意味着要做好准备,看看谁能领先,谁不能领先。
或者,根据您的使用情况,您可以考虑使用 Twitter 的优秀人员提供的 twemproxy。或者使用软件负载平衡器(如 balance)。