我有一个应用程序在Ubuntu Linux 12.04上运行需要存储和检索大量的大型序列化对象。目前,商店是通过简单地将序列化的流保存为文件来实现的,其中文件名等于序列化对象的md5散列。不过,我想加快将文件存储替换为内存中缓存最近读取/写入的对象的速度,并且最好为我做散列。memcached像磁盘持久化软件
我的应用程序的设计不应该更复杂。因此,最好是以抽象和有效的方式管理键值数据库和缓存的存储后端。我有点迷失在那里的所有关键/价值商店,而且很多主题/信息似乎已经过时。我最初正在寻找像memcached + membase这样的东西,但也许有更好的解决方案。我看着redis,mongodb,couchdb,但是我不清楚它们是否适合我的需求。
我最重要的要求:
- 透明保存到持久性存储的方式,最近读/写的对象是可迅速通过在内存中缓存自动它们。
- 存储应该在重新启动后存活。因此,在内存中,对象应尽快保存在磁盘上。
- 目前我正在手动计算md5。如果后端为我做这件事,那实际上会更好。因此能够在存储对象时获取散列键,并且能够稍后使用散列键检索对象。
- 更重要的是,如果有可用于Ubuntu 12.04的软件包,无论是在Universe中还是通过启动板或其他软件。
- 除此之外,该软件最好是光不能超过必要的复杂(我不需要分布地图,减少就业机会等)
感谢您的咨询!
应用程序是将这些本地存储到它运行的计算机,还是计划与服务器通信以存储这些对象?您列出的所有技术都是服务器位。要运行应用程序并在本地存储,除了应用程序之外,还需要在本地安装和运行服务器。 – 2012-07-15 19:24:02
操作系统在文件上进行内存中缓存,所以这个系统没问题。 – 2012-07-15 23:14:04