我有一个在 Ubuntu Linux 12.04 上运行的应用程序,它需要存储和检索大量大型序列化对象。目前,存储是通过简单地将序列化流保存为文件来实现的,其中文件名等于序列化对象的 md5 哈希。但是,我想加快将文件存储替换为对最近读/写的对象进行内存缓存的文件存储的速度,并且最好为我进行哈希处理。
我的应用程序的设计不应该变得更复杂。因此,最好是一个存储后端,它以抽象和有效的方式管理键值数据库和缓存。我对那里的所有键/值存储有点迷茫,而且许多主题/信息似乎已经过时了。我最初是在寻找类似 memcached+membase 的东西,但也许有更好的解决方案。我查看了 redis、mongodb、couchdb,但我不太清楚它们是否符合我的需求。
我最重要的要求:
- 通过将最近写入/读取的对象自动缓存在内存中,可以快速获得最近写入/读取的对象,从而透明地保存到持久存储中。
- 商店应该在重新启动后仍然存在。因此,内存中的对象应尽快保存在磁盘上。
- 目前我正在手动计算 md5。如果后端为我这样做,实际上会更好。因此能够在存储对象时获取散列键,并能够在以后使用散列键检索对象。
- 最大的优点是,如果有适用于 Ubuntu 12.04 的软件包,无论是在宇宙中还是通过启动板或其他方式。
- 除此之外,该软件最好应该是轻量级的,而不是比必要的更复杂(我不需要分布式 map-reduce 作业等)
感谢您的任何建议!