0

我需要某种数据库品种(MySQL、SQLite 等)的比较表。我找不到一个。

我的用例是,我在分布式哈希表中实现对象的存储。我需要一个数据库解决方案:

  • 快速分拣
  • 简单化(没有用户,最好没有额外的结构,如多个表等)
  • 并发(如果可能)
  • 多平台
  • 基于文件(主要不存储在内存中)
  • 集中

我将使用 Go 进行编程。

据我了解,我相信我需要所谓的面向文档的数据库,因为我正在存储由键标识的对象。

编辑:在实现 DHT 时,我还将存储有关对象的元数据,例如访问计数等。最好有 TLL(生存时间)

4

1 回答 1

2

“面向文档”不是我所说的你想要的。我认为您想要一个“键值存储”,这可能是最简单的 NoSQL 类型。你可以这样做:

> set "key" value
"OK"
> get "key"
"value"

因此,我推荐redis,与更重和更有条理的替代品相比,我觉得它“轻巧”。您可以在Try Redis尝试它,这是一个功能性交互式 shell。


编辑:您的评论,以及您的编辑,继续推荐 Redis。Redis 有 TTL,以两个命令的形式出现:expire,它需要几秒钟,以及expireat,它需要一个 Unix 时间戳。此外,它允许满足您需求的哈希(据我了解):

> hmset POST:dd68f250-c3f2-11e1-9b21-0800200c9a66 _timestamp 1341198420 title "An Example" content "This is an example of a representation of a blog post (or something) in Redis."
"OK"
> hgetall POST:dd68f250-c3f2-11e1-9b21-0800200c9a66
{"_timestamp":"1341198420","title":"An Example","content":"This is an example of a representation of a blog post (or something) in Redis."}
> expire POST:dd68f250-c3f2-11e1-9b21-0800200c9a66 60
true
> ttl POST:dd68f250-c3f2-11e1-9b21-0800200c9a66
53
于 2012-07-02T02:56:02.893 回答