我希望开始在一些辅助项目中使用键/值存储(主要是作为一种学习经验),但最近出现了太多,以至于我不知道从哪里开始.仅凭记忆列出,我能想到:

  1. CouchDB
  2. MongoDB
  3. 里亚克
  4. 雷迪斯
  5. 东京内阁
  6. 伯克利数据库
  7. 卡桑德拉
  8. MemcacheDB

我敢肯定,在我的搜索努力中,还有更多的东西漏掉了.有了所有的信息,很难在所有竞争对手之间找到可靠的比较.我的标准和问题是:

  1. (Most Important) Which do you recommend, and why?
  2. 哪一个最快?
  3. 哪一个最稳定?
  4. 哪一个最容易设置和安装?
  5. 哪些有Python和/或Ruby的绑定?

Edit:

Edit 2:

推荐答案

你推荐哪个,为什么?

我推荐Redis.为什么?继续阅读!!

哪一个最快?

我说不出它是不是最快的.但Redis是fast岁.速度很快,因为

哪一个最稳定?

再说一次,因为我没有直接的经验与其他关键价值store ,我无法比较.然而,Redis在生产中被许多web应用程序使用,比如GitHubInstagram等.

哪一个最容易设置和安装?

Redis很容易安装.抓住source,在Linux机器上运行make install.这将产生redis-server个二进制文件,您可以将其放在您的路径上并启动它.

默认情况下,redis-server绑定到端口6379.查看源代码附带的redis.conf,了解更多配置和设置选项.

哪些有Python和/或Ruby的绑定?

Redis拥有出色的RubyPython支持.

作为对以下Xorlev's comment条的回应:Memcached只是一个简单的键值存储.Redis支持复杂的data types类列表、集合和排序集合,同时为这些数据类型提供了一个simple interface.

还有make 32bit个指针,即使在64位机器上,所有指针的大小也只有32位.这在内存小于4GB的机器上节省了大量内存.

Ruby相关问答推荐

如何查询哪些RuboCop规则适用于文件?

使用 Sorbet RBI 时需要 Elem

Ruby中带和不带下划线_的方法参数有什么区别

在 Ruby 中,rescue语句可以嵌套在哪些 struct 中

有人可以解释 Ruby 在块中使用管道字符吗?

获取字符串中的最后一个字符

何时在 Ruby 方法中使用 `self.foo` 而不是 `foo`

检测 ruby​​ 是否在 Windows 上运行的正确方法是什么?

如何从 Ruby 中的线程返回值?

如何用 Ruby 覆盖 shell 中的打印行?

try 学习/理解 Ruby 的 setter 和 getter 方法

如何绘制 git repo 的代码行历史记录?

在 Ruby 中定义 [方括号] 方法是如何工作的?

Ruby 的所有/最佳列表?

确定Ruby的位置

如何在 Ruby 中获取命名空间中的所有类名?

Ruby 中的超级关键字

Ruby 中的 to_s 与 to_str(以及 to_i/to_a/to_h 与 to_int/to_ary/to_hash)

如何在没有 RVM 的 Ubuntu 上安装 Ruby 2

如何在 Ruby 中创建整数循环?