【问题标题】:ArangoDb as cache server alternative for redisArangoDb 作为 redis 的缓存服务器替代品
【发布时间】:2017-02-19 18:33:47
【问题描述】:

我打算使用 arangodb 作为我的后端存储。而且我想知道与 aerospike 和 redis 相比,arango db 作为缓存服务的效率如何。有没有人在缓存系统的功能和性能方面尝试过比较。这将帮助我减少使用后端堆栈中的另一个系统管理。

【问题讨论】:

  • 我没有将 ArangoDB 与 Aerospike 或 Redis 进行比较,但我对它作为后端存储非常满意。单读和单写速度非常有竞争力。 Arangoimp 和 Arangodump 非常适合批量操作。我建议为您的应用程序尝试 ArangoDB,特别是如果您将从图形数据结构中受益。索引使 ArangoDB 比我见过的任何其他图形数据库都快。这是因为它们使用哈希索引和双向链表的组合,而不是典型的图形数据库“无索引邻接”。键/值和文档存储功能也很快!

标签: caching redis memcached arangodb aerospike


【解决方案1】:

据我所知,ArangoDB 不提供与 redis 相同的面向缓存的功能(我想到了密钥的过期,使用像 EXPIREEXPIREAT 这样的命令)。所以你必须处理过期密钥的过期和驱逐,ArangoDB 不会为你做这件事。

此外,ArangoDB 主要将其数据存储在磁盘上,而 Redis 将所有数据存储在内存中 - 并且可选地存储在磁盘上。因此,无需进行任何基准测试,您就可以确信 Redis 将比 ArangoDB 快得多。

ArangoDB 制造商自己制作了performance benchmarks,他们没有将其与任何内存数据库进行比较。只是产品类别不一样。

【讨论】:

  • 您可能会使用 Foxx 服务来执行诸如 EXPIRE 或 EXPIREAT 之类的操作,作为文档中属性的函数。
  • 这正是我所说的:你必须自己处理它,Redis 会为你处理它。使用 Foxx 服务只是一种方法。顺便说一句,我同意你的看法,虽然我不会将它用作缓存,但 ArangoDB 是一个很棒的数据库;)
  • 谢谢...我认为这是一个很好的建议...接受作为一个回答。
  • 我应该补充一点,ArangoDB 确实将数据存储在内存中。当数据源在 ArangoDB 中标记为 loaded 时,该数据在内存中。在我的服务器(128GB RAM)上运行,ArangoDB 的磁盘 I/O 非常少,这表明它主要在内存中运行,磁盘仅用于数据的交换和非易失性存储。 (如果我错了,请 ArangoDB 开发人员纠正我)
【解决方案2】:

ArangoDB 将自己称为“主要在内存中”。正如 Nate 所说,它可以非常快。

它的方法试图通过offering multi model patterns 在一个数据库中规避Polyglot persistance 方法引入的问题。如果您想扁平化应用程序设置的依赖堆栈,选择 ArangoDB 而不是 Redis 可能是一种有效的方法。

它的资源使用足迹是否符合您的期望应该是您自己的基准测试的一部分。

【讨论】:

    猜你喜欢
    • 2017-11-19
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 2016-09-13
    • 2010-10-22
    • 2012-08-30
    相关资源
    最近更新 更多