当Redis集群中的master宕机时,Redis会等待节点超时,将slave提升为master。从属升级到掌握可能需要额外的时间。在主设备降级为从设备升级为主设备期间,写入/读取,尤其是写入将会失败。如何确保零停机?
我认为这是大多数数据库的常见问题。假设你有一个 mongo 副本集,并且 master 宕机了,slave 需要一段时间才能升级,并且你会丢失写入,与 mongo shard 或 mysql 一样。
即使 Redis 可以提供即时故障转移(这是不可能的),也无法保证您的写入,除非您在每次操作时都使用 AOF 写入磁盘,但这会非常慢并且违背了 Redis 的全部目的。
更好地保证写入的一种解决方案是将数据推送到队列(例如 kafka)并异步写入 redis 或任何其他数据存储。但随后您又引入了一个堆栈,我们还必须担心它的故障转移。
所以,我认为我们应该尝试将 Redis 视为缓存,而不是永久数据存储。
| 归档时间: |
|
| 查看次数: |
1534 次 |
| 最近记录: |