当主服务器在Redis群集中关闭时,Redis将等待节点超时将从服务器升级为主服务器。从属提升可能要花费额外的时间才能掌握。在主机下降到从机升级到主机的时间期间,写入/读取,尤其是写入将失败。如何确保零停机时间?
答案 0 :(得分:1)
我认为这是大多数数据库的常见问题。假设您有一个mongo副本集,而master崩溃了,升级slave会花费一些时间,并且您丢失了写内容,与mongo shard或mysql相同。
即使redis可以提供即时故障转移(这是不可能的),也不能保证您的写入,除非您在每个操作上都使用AOF对磁盘进行写操作,但这会非常慢,并且无法实现redis的全部目的。
一种更接近写入保证的解决方案是将数据推送到队列(例如kafka)并异步写入redis或任何其他数据存储。但是随后您又引入了一个堆栈,我们还必须担心其故障转移。
因此,我认为我们应该尝试将Redis视为缓存,而不是作为永久数据存储。