- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一款游戏需要玩家点击回合。必须在文件中保存每轮数据。目前,我们正在使用mysql数据库来保存数据。我想通过使用 redis 来优化它。 redis AOF fsync per write 是否比 mysql 具有更高的可靠性和更好的性能。
最佳答案
您可能想阅读 the Redis persistency page和 high latency troubleshooting page .
MyISAM 引擎不提供任何重做日志记录机制。所以它相当快,但不可靠。任何系统崩溃都可能导致数据文件损坏,必须先修复这些文件才能恢复服务。
具有 AOF + fsync per write 的 Redis 将提供更好的可靠性,但以性能和可扩展性为代价。 HDD 的 Fsync 操作非常昂贵。 Redis 尝试通过使用组提交的形式来优化它们(即在事件循环迭代期间批处理多个写入操作),但是当 fsync 完成时,整个 Redis 事件循环仍然被卡住。
您可以通过使用其他选项(例如 appendonly everysec)来放宽此行为。在这种模式下,您可以在系统崩溃时丢失最后一秒的写入流量,但在重新启动 Redis 之前无需修复任何东西。这种模式下的性能要好得多,因为 fsync 主要在后台完成。
IMO,如果您需要绝对持久性(但对于游戏我对此表示怀疑),您最好使用具有最大安全选项的真正 OLTP 引擎(例如:将 innodb_flush_log_at_trx_commit 设置为 1 的 InnoDB)。
关于mysql - 每次写入使用 Redis AOF fsync 与 MYSQL myism db 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8633834/
我有一款游戏需要玩家点击回合。必须在文件中保存每轮数据。目前,我们正在使用mysql数据库来保存数据。我想通过使用 redis 来优化它。 redis AOF fsync per write 是否比
我是一名优秀的程序员,十分优秀!