Dragonfly,一个声称可以更快替代 Redis 和 Memcached 的项目

发布的消息是 第一个版本已经可用 内存数据缓存系统 Dragonfly,提供对 Memcached 和 Redis 协议的支持, 但它允许查询以更高的性能和更少的内存消耗运行。

该系统以键/值格式处理数据,可用作轻量级解决方案,以加速负载较重的站点、在 DBMS 中缓存慢查询以及在 RAM 中缓存中间数据。

BSL 由 MySQL 的联合创始人提出 作为开放核心模型的替代方案。 BSL 的本质是扩展功能代码最初是可以修改的,但有一段时间可以免费使用,需要附加条件,需要购买商业许可证才能绕过。

Dragonfly 项目的附加许可条款要求仅在 2.0 年 1 月 2027 日将代码转换为 Apache XNUMX 许可。在此之前,许可仅允许使用代码来确保其服务和产品的运行,但禁止用于创建充当 Dragonfly 附加组件的付费云服务。

蜻蜓 号称是世界上最快的内存存储系统, 根据开发人员和基准。 与 Redis 相比,Dragonfly 实现了 25 倍的性能提升 在典型工作负载下内存消耗减少 3 倍。 单台 Dragonfly 服务器每秒可以处理数百万个请求,例如在 Amazon EC2 c6gn.16xlarge 环境中,实现了每秒 3,8 万个请求的吞吐量。

在 5 GB 存储测试中,Dragonfly 需要的内存比 Redis 少 30%. 在使用“bgsave”命令创建快照的过程中,内存消耗增加了,但是在高峰期,它的维护量几乎是Redis中的三倍,而且快照写入操作本身要快得多(在测试中,在蜻蜓在 30 秒内,Redis - 在 42 秒内)。

多线程架构实现高性能 没有共享资源( shared-nothing ),这意味着每个线程都附加了一个具有自己数据的单独且独立的控制器,无需互斥锁或自旋锁即可工作。 轻量级 VLL 锁用于确保处理多个键时的原子性。 为了在内存中有效地存储信息,使用了dashtable结构,它实现了一种分区哈希表。

中可用的功能 第一个版本突出了对 RESP2 协议和 130 个 Redis 命令的支持,大致对应 Redis 2.8 版本的功能。

另外, Dragonfly 支持除 CAS 之外的所有 Memcached 命令 (验证和设置),支持创建快照的异步操作,提供可预测的内存消耗,提供内置的 Lua 5.4 解释器,并支持哈希、集合和列表等复杂数据类型(ZSET、HSET、LIST、SETS 和细绳)。

另外,缓存模式可用,其中一旦空闲内存耗尽,旧数据将自动替换为新数据。 在数据被认为相关的生命周期内,可以链接到数据。

存储状态可以在后台刷新到磁盘,以便在重新启动后恢复。 为了管理系统,提供了一个 HTTP 控制台(绑定到 TCP 端口 6379)和一个返回 Prometheus 兼容指标的 API。 在未来的版本中,我们计划扩展对 Redis 命令的支持并实现复制存储以进行故障转移和负载平衡的能力。

最后,如果您有兴趣进一步了解它,您应该知道 Dragonfly 代码是用 C/C++ 编写的,并且在 BSL(Business Source License)下分发。

您可以咨询该项目 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。