Dragonfly 内存数据存储入门指南:5 分钟在本机跑起来

发布时间:2026/9/3 14:22:25
Dragonfly 内存数据存储入门指南:5 分钟在本机跑起来 Dragonfly 内存数据存储入门指南5 分钟在本机跑起来【免费下载链接】dragonflyA modern replacement for Redis and Memcached项目地址: https://gitcode.com/GitHub_Trending/dr/dragonflyDragonfly 是一个现代化的内存数据存储in-memory data store可以直接替代 Redis 和 Memcached并完整兼容两者的 API——也就是说你现有的 Redis/Memcached 客户端代码基本不用改动就能换成 Dragonfly 并获得更高的吞吐、更低的尾延迟和更少的资源占用。下面这份安装与使用指南会带你先理解它为什么值得用再带你走进仓库看目录结构最后用最少步骤把服务跑起来并验证、配置。为什么用它吞吐量随核数线性增长Dragonfly 采用 shared-nothing 架构把键空间切分到多个线程shard并行处理官方基准测试中在 c6gn.16xlarge 实例上比单进程 Redis 高出约 25 倍pipeline 模式下 GET 可达 15M QPS。零改动的迁移成本实现了约 190 个 Redis 命令和 13 个 Memcached 命令通过--memcached_port还能同时开启 Memcached 协议端口。更省内存核心哈希表基于 Dash 算法快照采用无 fork 的序列化方式官方测试中空闲状态比 Redis 节省约 30% 内存快照期间内存几乎不涨。自带 HTTP 控制台默认在 6379 端口同时提供 HTTP 访问浏览器打开即可/metrics路径还暴露 Prometheus 兼容指标可直接接 Grafana。走进仓库目录结构一览dragonfly/ ├── src/ # 全部 C 源码 │ ├── core/ # 核心数据结构Dash 哈希表、快照序列化等 │ ├── server/ # 命令实现与服务器主体含启动文件 dfly_main.cc │ ├── facade/ # 协议层Redis/Memcached 解析、响应构建 │ └── redis/ # 移植自 Redis 的基础库sds、ziplist 等 ├── helio/ # 线程与 I/O 框架Git 子模块构建必需 ├── docs/ # 官方文档快速开始、构建指南、FAQ 等 ├── tests/ # Python 集成测试与 fuzz 种子 ├── tools/ # 压测、TLS、监控等辅助工具 ├── contrib/ # Docker Compose 与 Helm Chart 部署方案 ├── Makefile # 构建入口make release 出发布版 └── CMakeLists.txt # CMake 顶层构建脚本重点关注三个位置src/server/dfly_main.cc 是最终可执行文件dragonfly的入口在 src/server/CMakeLists.txt 中通过add_executable(dragonfly dfly_main.cc ...)定义docs/quick-start/ 是官方快速上手文档Makefile 是本地构建的总入口。让它跑起来从 clone 到验证最快的方式是 Docker 一条命令要求本机已装 Dockergit clone --recursive https://gitcode.com/GitHub_Trending/dr/dragonfly # 子模块 helio 不可省略 docker run -p 6379:6379 --ulimit memlock-1 docker.dragonflydb.io/dragonflydb/dragonfly # 另开终端验证能读写即表示服务可用 redis-cli -p 6379 set hello world # 返回 OK redis-cli -p 6379 get hello # 返回 world不想用 Docker 也可以从源码编译详见 docs/build-from-source.md安装ninja-build、libboost-context-dev、libssl-dev等依赖后执行./helio/blaze.sh -release配置再cd build-opt ninja dragonfly构建产物./dragonfly --alsologtostderr即可运行。验证方式有三种① 用redis-cli连localhost:6379做 SET/GET② 浏览器直接访问http://localhost:6379HTTP 控制台③ 访问http://localhost:6379/metrics查看 Prometheus 指标。配置要点常用配置项与配置教程Dragonfly 的配置全部通过命令行参数完成没有独立的服务配置文件也支持两种批量方式--flagfile 文件每行一个参数键值用等号连接和环境变量DFLY_参数名。一个典型的 flagfile 示例如下# flags.txt requirepassyoushallnotpass port6379 bindlocalhost maxmemory12gb cache_modetrue dbfilenamedump.rdb # 启动: ./dragonfly --flagfile./flags.txt常用参数解释portRedis 协议监听端口默认6379。bind绑定地址localhost只允许本机访问0.0.0.0允许所有 IPv4 连接公网部署时注意安全性。requirepassAUTH 认证密码默认空不加密。maxmemory内存上限人类可读格式如12gb0表示自动判断。cache_mode开启缓存模式后Dragonfly 会在接近maxmemory时自动淘汰最不可能再被访问的键零额外内存开销。另外值得了解memcached_port同开 Memcached 端口、hz过期扫描频率默认 100、snapshot_croncron 表达式定时快照、cluster_modeemulated单节点模拟集群。完整参数列表可用dragonfly --help查看。注意以上 flagfile 文件内容是基于 README 中--flagfile机制说明与参数文档推演的示例实际参数名与默认值请以官方最新文档为准。常见问题与下一步QDragonfly 是开源的可以商用吗它采用 BSL 1.1 许可source-available生产环境免费使用没问题除非你把 Dragonfly 本身作为托管服务出售细节见 docs/faq.md。Q它和 Redis 有行为差异吗有少量差异如毫秒级过期在 2^28ms 以上会四舍五入到秒、过期范围约 8 年上限清单在 docs/differences.md迁移前建议过一遍。Q生产环境怎么部署单机用 contrib/docker/ 的 Compose 方案数据持久化到/data卷K8s 用 contrib/charts/dragonfly/ 的 Helm Chart对外暴露端口时记得用--nohttp_admin_console关闭 HTTP 控制台。下一步可以阅读 docs/ 下的集群模式、异步分层存储tiering、Dashtable 等设计文档深入理解它的实现。按照以上安装步骤与配置教程走完你手上已经有了一个兼容 Redis/Memcached 协议、可接监控、可定时快照的 Dragonfly 内存数据存储实例更多最新功能与参数变更请持续关注官方文档。【免费下载链接】dragonflyA modern replacement for Redis and Memcached项目地址: https://gitcode.com/GitHub_Trending/dr/dragonfly创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考