Redis AOF 和 Tarantool WAL 日志的区别

sky*_*yde 1 database redis wal tarantool

我正在阅读有关 Tarantool 的这篇文章,他们似乎说 AOF 和 WAL 日志的工作方式不同。

Tarantool:除了快照之外,它还有一个完整的 WAL(预写日志)。因此,它可以在每次开箱即用的交易后确保数据持久性。Redis:事实上,它只有快照。从技术上讲,您有 AOF(仅附加文件,所有操作都在其中写入),但它需要对其进行手动控制,包括重新启动后的手动恢复。简单地说,使用 Redis,您需要时不时地手动挂起服务器,制作快照并存档 AOF。

有人可以更清楚地解释两种策略之间的不同之处以及每种策略如何在高层次上工作。

我一直认为 Redis AOF 与 SQL 数据库事务日志的工作方式相同,例如在 Postgresql 中实现,但我可能错了。

dav*_*p14 6

AOF 是 Redis 的主要持久化选项。每当有修改内存中数据集的写入操作时,都会记录该操作。因此,在重新启动期间,Redis 将重放所有操作以重建数据集。您还有 3 种不同的 fsync 配置策略可供选择(不、每一秒、始终)。FWIW,如果您想要良好的数据安全水平,通常建议同时使用 AOF + RDB。这有点超出您的问题范围,但我想我会提到它。

主要 Redis 持久化文档

Redis 持久化揭秘

Tarantool 使用称为“WAL 编写器”的东西。这将在单独的线程中运行并记录操作数据“插入和更新请求”的请求。重新启动时,Tarantool 通过读取 WAL 文件并重放每个请求来恢复。

Tarantool 持久性文档

内部结构显然存在差异,但在高层次上它们非常相似。文章中的持久性比较非常奇怪,根本不是真的。

有关低级差异的更多信息,请参阅上面列出的文档。

希望有帮助