我指的是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商店检索消息会不会更快?有任何想法吗?谢谢。
答案 0 :(得分:0)
在zeromq指南中,为此模式提供的示例以非常幼稚的方式使用简单文件(使用缓冲I / O,没有任何fsync')。代理直接负责在文件系统上存储内容。因此,性能主要与VFS和文件系统缓存的效率相关联。图中没有真正的I / O.
在这种情况下,将数据存储和检索到Redis的额外跃点的成本将非常明显,尤其是如果使用同步查询/回复实现的话。
Redis作为远程键/值存储非常有效,但它无法与嵌入式存储(甚至是在文件系统缓存之上实现的存储)竞争。