0

我必须存储电子邮件消息以供我们的应用程序使用。我对关系数据库中的所有消息都有“元数据”,但我觉得将消息内容(千兆字节和 TB 的电子邮件数据)保存在数据库中感到不舒服。我目前使用 IMAP 作为存储,但我怀疑我是否选择正确。首先有一个 uidvalidity 问题以及如何在 IMAP 中保持对消息的永久引用。其次,我不确定这在备份/恢复策略、存储损坏、复制方面是否是最强大的解决方案......积极的一面是我可以使用标头查询 IMAP,因为数据大多是索引的。

我不知道键值存储是否是更好的方法(Casandra、Tokyo cabinet、redis)。他们如何处理存储 1KB 和 50MB 的数据。他们如何防止损坏以及发生损坏或设备故障时如何修复商店。

4

1 回答 1

0

使用文件系统怎么样?您在数据库中的元数据可以指向实际消息的路径名(每个文件一条消息)。

如果您的消息量足够大以至于您担心基于每个目录的文件数的性能,您可以将其拆分为 2 级(或更多)级目录层次结构(例如,通过对 messageid 进行散列)。

使用标准文件系统意味着您可以使用所有现有技术进行日志记录、复制、备份等。

于 2010-05-13T19:11:45.437 回答