我正在寻找一种内存效率极高的数据存储,同时仍允许每秒进行许多对象更改,并且忽略最后 X 条记录的 ACID 合规性。
我需要这个数据库用于内存不大的服务器,并且我可以使键值存储、文档或 SQL 数据库工作。
我的想法是,索引/键是我在内存中唯一需要的东西,由于读取率低(我只希望索引/键查找速度快),所有实际值/对象/行都可以保存在磁盘上。我也不希望记录不断地被刷新到磁盘,所以我希望最后 X 条记录保存在内存中,这样可以一次写入 100 条左右的记录。我不在乎是否丢失了最后 10 秒的对象/值。我关心的是整个数据库是否有损坏的危险。
有这样的数据存储吗?
答案1
Redis 可以处理这种情况——它将所有内容写入磁盘(最终),但您可以指定它执行此操作的频率,并且任何未写入的内容都会(自然)丢失。
http://redis.io/topics/persistence向您提供所有血腥细节。
答案2
是的 - 现代操作系统上使用异步 I/O 的任何数据库都会具有接近最佳的缓存。
答案3
前面已经提到过 Redis
其他选择:
- scalaris(在 code.google.com 上的某个地方)——完整的 CAP 并且是分布式的
- riak(basho.com——最终一致、分布式)