Dragonfly:兼容 Redis 的内存数据存储,3 步跑起来
【免费下载链接】dragonflyA modern replacement for Redis and Memcached项目地址: https://gitcode.com/GitHub_Trending/dr/dragonfly
Dragonfly 是兼容 Redis 与 Memcached 协议的高性能内存数据存储系统,迁移时客户端代码基本不用改动。读完本文,你会从源码构建 Dragonfly,用一条命令启动服务,并会调整最常用的一批配置参数。
🚀 快速上手:如何构建并启动 Dragonfly
第一步,克隆仓库。构建体系依赖helio子目录,所以要用--recursive把子模块一起拉下来:
git clone --recursive https://gitcode.com/GitHub_Trending/dr/dragonfly && cd dragonfly第二步,编译。Dragonfly 用 C++ 编写,基于 CMake 和 Ninja 构建。Debian/Ubuntu 下先装ninja-build、libunwind-dev、libboost-context-dev、libssl-dev等依赖(完整清单见构建文档):
./helio/blaze.sh -release cd build-opt && ninja dragonfly第三步,启动。一条命令即可,编译完成后执行它,服务即监听 6379 端口:
./dragonfly --port=6379启动后你可以用redis-cli连接验证,或用浏览器访问http://localhost:6379打开内置的 HTTP 控制台。
配置速览:Dragonfly 常用参数一次看懂
Dragonfly 没有独立配置文件,参数全部走命令行标志。以下 6 项是运维中最常调整的维度,表中数值均为示例值:
| 配置维度 | 参数 | 作用 | 示例值 |
|---|---|---|---|
| 端口与绑定 | port、bind | Redis 协议端口与监听地址 | --port=6379 --bind=0.0.0.0 |
| 认证 | requirepass | AUTH 密码,默认为空 | --requirepass=MyPass123 |
| 内存上限 | maxmemory | 数据库最大内存,0 表示自动判定 | --maxmemory=12gb |
| 缓存淘汰 | cache_mode | 接近上限时淘汰低访问概率的键 | --cache_mode=true |
| 快照持久化 | dbfilename、snapshot_cron | 快照文件名与定时备份计划 | --dbfilename=dump.rdb --snapshot_cron='0 0 * * *' |
| Memcached 兼容 | memcached_port | 启用 Memcached 协议端口,默认关闭 | --memcached_port=11211 |
另外两种传参方式:把参数每行一条写入文件后经--flagfile加载;或用DFLY_前缀的环境变量。完整参数用dragonfly --help查看。
项目地图:想找模块时去哪里
不需要记住整棵目录树,记住这 5 组对应关系就够了:
- 想找命令实现 → src/server/:各数据类型的命令按
*_family.cc命名,如string_family.cc、zset_family.cc。 - 想找协议解析 → src/facade/:RESP 与 Memcached 请求解析、回复构造都在这里。
- 想找核心数据结构 → src/core/:DASH、OAH 哈希表,B+ 树,流节点等基础实现。
- 想找集成测试 → tests/dragonfly/:pytest 编写,覆盖复制、集群等场景。
- 想找设计文档 → docs/:事务、集群模式等机制说明都是 markdown 文件。
下一步
需要按发行版安装依赖、了解构建选项时,读docs/build-from-source.md;准备贡献代码前,先看CONTRIBUTING.md。评估是否从 Redis 迁移,可先对照docs/differences.md中的行为差异。
Dragonfly 迭代较快,本文参数名与默认值可能与最新版本有出入,上线前请以官方最新文档和dragonfly --help的输出为准。
【免费下载链接】dragonflyA modern replacement for Redis and Memcached项目地址: https://gitcode.com/GitHub_Trending/dr/dragonfly
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考