0

我指的是 zeromq 指南中解释的泰坦尼克模式。有人可以解释一下为什么它建议不使用键值存储而不是读/写磁盘文件以实现持久性。引用指南:

"What I'd not recommend is storing messages in a database, not even a "fast" key/value    
store, unless you really like a specific database and don't have performance worries. You  
will pay a steep price for the abstraction, ten to a thousand times over a raw disk file."

指南中还给出了其他建议,例如以循环缓冲区的方式将消息存储到磁盘文件中。但是存储消息并从 redis 存储中检索它们不是更快吗?有任何想法吗?谢谢你。

4

1 回答 1

0

在 zeromq 指南中,为此模式提供的示例以一种非常幼稚的方式使用简单文件(使用缓冲 I/O,没有任何 fsync'ing)。代理直接负责在文件系统上存储东西。所以性能主要与 VFS 和文件系统缓存的效率有关。图中没有真正的 I/O。

在这种情况下,将数据存储和检索到 Redis 的额外跃点成本将非常显着,尤其是在使用同步查询/回复实现的情况下。

Redis 作为远程键/值存储非常有效,但它无法与嵌入式存储竞争(即使是在文件系统缓存之上实现的存储)。

于 2013-09-18T09:54:21.290 回答