Dragonfly,一个RAM数据缓存系统

蜻蜓

Dragonfly 是为现代应用程序工作负载构建的内存数据存储。

前几天公布了 发布 Dragonfly 内存缓存和数据存储系统, 它以键/值格式操作数据,可用作轻量级解决方案,通过缓存对 DBMS 的慢速查询和 RAM 中的中间数据来加速高负载站点。

蜻蜓 支持 Memcached 和 Redis 协议, 允许您使用现有的客户端库并将使用 Memcached 和 Redis 的项目移植到 Dragonfly,而无需重新编写代码。

值得一提的是蜻蜓 最近收到更新, 达到其 1.0 版,其中 突出实现对数据复制的支持 从主服务器到辅助服务器。

与此同时,蜻蜓 可以配置为用作辅助存储 它接受来自基于 Dragonfly 和 Redis 的主服务器的数据。 复制管理 API 与 Redis 兼容,并基于 ROLE 和 REPLICAOF (SLAVEOF) 命令的使用。

关于蜻蜓

多线程架构实现高性能 不共享资源(无共享),这意味着一个单独的控制器附加到每个线程,每个线程都有自己的数据,无需互斥锁或自旋锁。

轻量级 VLL 锁用于保证处理多个键时的原子性,因为为了将信息有效地存储在内存中,使用了 dashtable 结构,它实现了一种分区哈希表。

与 Redis 相比,Dragonfly 拥有 25 倍的性能提升 (每秒 3,8 万个请求)在 Amazon EC2 c6gn.16xlarge 环境中的典型工作负载下。 与 AWS c6gn.16xlarge 环境中的 Memcached 相比,Dragonfly 每秒能够完成 4,7 倍的写入请求(3,8 万对 806k)和每秒 1,77 倍的读取请求(3,7 万对 2,1 万)。

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

一些 蜻蜓的特点是:

  • 一种缓存模式,一旦可用内存耗尽,就会自动用新数据替换旧数据。
  • 支持数据绑定生命周期,在此期间数据被认为是最新的。
  • 支持在后台将存储状态刷新到磁盘,以便稍后在重启后恢复。
  • 存在用于系统管理的 HTTP 控制台(绑定在 TCP 端口 6379)和用于返回指标的 API,与 Prometheus 兼容。
  • 支持 185 个 Redis 命令,大致相当于 Redis 5 版本的功能。
  • 支持除 CAS(验证和配置)之外的所有 Memcached 命令。
  • 支持异步操作创建快照。
  • 可预测的内存消耗。
  • 集成 Lua 解释器 5.4。
  • 支持哈希、集合、列表(ZSET、HSET、LIST、SETS 和 STRING)和 JSON 数据等复杂数据类型。
  • 存储复制支持故障转移和负载平衡。

对于那些对 Dragonfly 代码感兴趣的人,你应该知道这个 是用 C/C++ 编写的,分布在 执照 BSL .BSL的本质是扩展功能代码最初是可以修改的,但是有一段时间只能免费使用,需要附加条件,需要购买商业许可才能绕过。

Dragonfly 项目的附加许可条款要求在 2.0 年 15 月 2028 日将代码迁移到 Apache License XNUMX。在此之前,该许可仅允许使用代码以确保其服务和产品的运行,但禁止使用创建付费作为 Dragonfly 插件的云服务。

最后 如果您有兴趣了解更多信息,您可以在中查看详细信息 以下链接。


发表您的评论

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

*

*

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