当前位置: 首页 > article >正文

25.4K Star 高效内存数据存储!特别好用的Redis 和 Memcached 替代品:Dragonfly!

Dragonfly 是一款全新的高性能内存数据存储系统,专为高并发、低延迟的应用场景设计。

它完全兼容 RedisMemcached,并通过创新的算法与多线程架构,带来了高达 25 倍的性能提升

这使 Dragonfly 成为游戏服务器、实时分析、金融交易等对数据访问速度要求极高的场景下的理想选择。

主要特性

  • 百万级QPS: 非竞争性、多线程处理意味着在相同硬件上具有更高的吞吐量。请阅读基准报告了解详情。

  • 更高的命中率: Dragonfly独特的缓存算法意味着更高的命中率和对主数据库更好的保护。

  • 更低的尾部延迟: 始终保持低于1毫秒的P99延迟。请阅读基准报告了解详情。

  • 简易部署和管理: 使用Kubernetes Operator for Dragonfly轻松部署和管理。

  • 简单的垂直扩展: 与Redis Cluster和其他多节点方法相比,垂直扩展单个节点更快、更便宜且更可预测。

  • TB级工作负载: Dragonfly的多线程、无共享架构可以垂直扩展到每个实例1TB的内存。

  • 无需重新分片: Dragonfly自动在CPU之间分片数据,消除了重新分片的复杂性。

  • 更好的内存利用率: Dragonfly独特的数据结构允许将多余的计算用于压缩,从而实现更好的内存利用率。

  • 异步处理: Dragonfly异步运行任务,使您可以从每个CPU中挤出更多的循环。

  • 更低的硬件成本: Dragonfly充分利用所有硬件资源,使您可以在更小的实例上运行相同的工作负载。

  • 高效快照: 快照期间的内存使用量可预测地低。与Redis相比,快照完成速度快达30倍。

  • Redis/Memcached API兼容: 已经在使用Redis或Memcached?无需更改代码即可开始享受更高的速度和性能。

  • 单个二进制文件: 一个可以部署在Docker、K8或任何您选择的地方的单个二进制文件。

  • 本地开发、CI/CD: 已经在使用Redis或Memcached?无需更改代码即可开始享受更高的速度和性能。

  • 简单的监控: 本地支持Prometheus,无需代理。

  • 云快照: 无缝地从兼容S3的存储解决方案中直接写入和读取快照文件。

快速安装与使用

通过 Docke,可以快速体验 Dragonfly 的强大功能。以下是简单的安装步骤:

1. 下载官方 Docker Compose 文件
wget https://raw.githubusercontent.com/dragonflydb/dragonfly/main/contrib/docker/docker-compose.yml
2. 启动 Dragonfly
docker compose up -d
3. 确认服务是否启动成功
docker ps | grep dragonfly
4. 查看日志
docker logs -f docker_dragonfly_1

启动完成后,Dragonfly 将立即响应 httpredis 请求。你可以使用 redis-cli 连接到 localhost:6379 端口,也可以通过浏览器访问 http://localhost:6379

5. 使用 Redis 客户端连接
redis-cli
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> keys *
1) "hello"
127.0.0.1:6379> get hello
"world"
127.0.0.1:6379>

总结

Dragonfly 以其卓越的性能、多线程架构和对 Redis 与 Memcached 的全面兼容,成为了内存数据存储领域中的一匹黑马。它不仅能够满足高并发、低延迟的需求,还为用户提供了更高的灵活性和更低的硬件成本。

无论你是在构建实时游戏服务器、进行大规模数据分析,还是处理高频金融交易,Dragonfly 都能成为你值得信赖的存储解决方案。

开源地址:https://github.com/dragonflydb/dragonfly


http://www.kler.cn/a/420084.html

相关文章:

  • docker run 设置启动命令
  • [NOIP2015 提高组] 神奇的幻方
  • Ambrus 游戏工作室将应对气候变暖与游戏变现完美结合
  • 30分钟学会正则表达式
  • Linux 各个目录作用
  • 存储过程案例详解与应用示例
  • redisson-spring-data与Spring-Data-Redis的版本关系问题
  • 性能监控系统Prometheus、Node-exporter与Grafana部署详解搭建
  • 黑马程序员Java项目实战《苍穹外卖》Day03
  • Xilinx PCIe高速接口入门实战(一)
  • 软件保护:从用户角度出发的安全需求与体验
  • C++之 String 类的模拟实现
  • k8s api对象,CRD
  • linux 操作系统环境配置 redhat9
  • 如何利用微型5G网关为智慧无人矿车提供精确定位
  • pytest(一)csv数据驱动
  • AI开发 - GPT之魂 用Python 演示chatGPT的自注意力机制 - 机器学习
  • JavaScript根据数据生成柱形图
  • 大数据Hadoop实战:从基础到应用
  • STM407IGT6+WS2818灯带
  • ubuntu部署RocketMQ
  • Kubernetes 集群网络:Flannel 与 Calico 的区别
  • AD7606使用方法
  • 学习记录:js算法(一百零七):解码方法
  • 求自然数N的所有约数之和。:JAVA
  • LWIP和FATFS 实现 FTP 服务端