Redis的新内容。
假设设置/情况:假设Redis每10分钟拍摄一次快照。 AOF已关闭。你有一个名为“帖子”的集合,用于保存帖子的ID。你还有MySQL表格保存帖子的ID。
您如何意识到Redis数据不一致?从我所读到的,AOF引入了更多问题并且并不完美。是否存在更简单/更优雅的保持集合的解决方案?
答案 0 :(得分:2)
我们在这里谈论了多少数据?如果不是很多,您可以拥有一个只需从MySQL数据库重新加载Redis中所有数据的进程。好处是你可以从10分钟的备份存储中将所有数据加载到Redis中,然后只需在Redis中按键覆盖所有键。如果它已经存在,那么很好,如果不是,那么就添加它。
不幸的是,如果没有一些主要的工作来构建两个系统之间的并发性,你将无法保持它们的一致性。 AOF并不坏。你应该试一试。即使这样,你也要担心一致性。
答案 1 :(得分:1)
我已经取得一些成功的一个解决方案是使用在另一台服务器上运行的从属实例。与从属设备的同步没有阻塞,所以如果主设备崩溃,你仍然有可能失去最后一个命令,但实际上这是不太可能的。您还可以拥有多个从站以实现冗余。
结果是您的主服务器不再使用任何磁盘I / O,也没有额外的内存用于快照使用的进程分支。当主站发生故障时,您可以通过暂时将其中一个从站转换为主站(使用我最喜欢的redis命令:SLAVEOF NO ONE
),从临时主站获取主从站,然后恢复主/从角色来恢复数据同步完成后,恢复原始配置。