docker部署Memcached,DragonflyDB、KeyDB 和 Skytable,Valkey

发布于:2025-08-18 ⋅ 阅读:(18) ⋅ 点赞:(0)

在这里插入图片描述

以下是 Memcached、DragonflyDB、KeyDB、Skytable 和 Valkey 的性能对比分析(基于典型场景和公开测试数据):

数据库 类型 线程模型 吞吐量 (QPS) 延迟 (μs) 内存效率 适用场景 兼容性
Memcached 纯内存键值存储 多线程 100K - 500K 10 - 100 缓存、会话存储 无原生密码认证
DragonflyDB 多协议内存数据库 多线程 1M+ 50 - 200 中高 高吞吐缓存、Redis 替代 兼容 Redis
KeyDB Redis 多线程分支 多线程 500K - 1M 50 - 150 需要 Redis 兼容的多线程场景 完全兼容 Redis
Skytable NoSQL 数据库 单线程/多线程 100K - 300K 100 - 500 结构化数据存储 不兼容 Redis
Valkey Redis 分支 单线程 300K - 800K 50 - 200 中高 Redis 替代、低延迟场景 完全兼容 Redis

详细说明

  1. Memcached
    优势:
    纯内存设计,读写速度极快(微秒级延迟)。
    多线程模型适合高并发简单键值操作(如缓存)。
    劣势:
    无持久化功能,不支持复杂数据结构。
    需通过 SASL 实现认证(性能略有损耗)。
  1. DragonflyDB
    优势:
    兼容 Redis 协议,但性能显著高于原生 Redis(宣称 1M+ QPS)。
    支持多线程和垂直扩展,适合大规模缓存。
    劣势:
    内存占用较高(因支持更多功能)。
  1. KeyDB
    优势:
    多线程 Redis 分支,吞吐量比单线程 Redis 提升 2-5 倍。
    完全兼容 Redis,无缝迁移。
    劣势:
    多线程可能增加复杂场景的锁竞争。
  1. Skytable
    优势:
    专为结构化数据优化(类似 MongoDB)。
    高内存效率,适合存储密集型场景。
    劣势:
    不兼容 Redis 协议,生态工具较少。
  1. Valkey
    优势:
    Redis 的直接替代品,保持单线程简单性。
    社区驱动,修复了 Redis 部分性能瓶颈。
    劣势:
    单线程模型限制多核利用率。

选型建议
缓存首选:DragonflyDB(高性能)或 KeyDB(多线程兼容 Redis)。
简单键值:Memcached(极致低延迟)。
结构化数据:Skytable(NoSQL 场景)。
Redis 替代:Valkey(兼容性优先)或 DragonflyDB(性能优先)。
注:实际性能受硬件、数据规模和配置影响,建议针对业务场景进行基准测试。

  1. Memcached
    Memcached 本身不支持密码认证,但可以通过 SASL 进行认证。以下是使用 SASL 的部署方式:
# 创建配置文件
echo "mech_list: plain" > /data/memcached_sasl.conf
echo "user memcached:87vhqEneQ5u8" >> /data/memcached_sasl.conf

# 启动容器
docker run -d \
  --name memcached \
  -p 11211:11211 \
  -v /data/memcached_sasl.conf:/etc/sasl/memcached.conf \
  -e MEMCACHED_ENABLE_SASL=yes \
  registry.cn-hangzhou.aliyuncs.com/qiluo-images/memcached \
  memcached -S -vv
arm镜像:registry.cn-hangzhou.aliyuncs.com/qiluo-images/linux_arm64_memcached

验证连接:

telnet localhost 11211
set foo 0 0 3
bar

会提示需要认证

  1. DragonflyDB
    DragonflyDB 是一个高性能的内存数据库,兼容 Redis 协议。
docker run -d \
  --name dragonfly \
  -p 6379:6379 \
  docker.dragonflydb.io/dragonflydb/dragonfly \
  --requirepass="87vhqEneQ5u8"
arm镜像:docker.dragonflydb.io/dragonflydb/linux_arm64_dragonfly 

验证连接:

redis-cli -a 87vhqEneQ5u8
  1. KeyDB
    KeyDB 是 Redis 的多线程分支。
docker run -d \
  --name keydb \
  -p 6380:6379 \
  registry.cn-hangzhou.aliyuncs.com/qiluo-images/keydb \
  keydb-server --requirepass 87vhqEneQ5u8
arm镜像:docker.dragonflydb.io/dragonflydb/linux_arm64_keydb

验证连接:

redis-cli -p 6380 -a 87vhqEneQ5u8
  1. Skytable
    Skytable 是一个高性能的 NoSQL 数据库。
docker run -d \
  --name skytable \
  -p 2003:2003 \
  registry.cn-hangzhou.aliyuncs.com/qiluo-images/skytable:latest \
  --auth-root-password 87vhqEneQ5u8
arm镜像:docker.dragonflydb.io/dragonflydb/linux_arm64_skytable

验证连接:

使用 Skytable 客户端连接

  1. Valkey
    Valkey 是 Redis 的一个分支(原名 Redis)。
docker run -d \
  --name valkey \
  -p 6381:6379 \
  registry.cn-hangzhou.aliyuncs.com/qiluo-images/valkey \
  valkey-server --requirepass 87vhqEneQ5u8
arm镜像:docker.dragonflydb.io/dragonflydb/linux_arm64_valkey

验证连接:

redis-cli -p 6381 -a 87vhqEneQ5u8

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

  1. 下载官方 Docker Compose 文件,修改镜像地址为 registry.cn-hangzhou.aliyuncs.com/qiluo-images/dragonfly
wget https://raw.githubusercontent.com/dragonflydb/dragonfly/main/contrib/docker/docker-compose.yml
  1. 启动 Dragonfly
docker compose up -d
  1. 确认服务是否启动成功
docker ps | grep dragonfly
  1. 查看日志
docker logs -f docker_dragonfly_1

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


网站公告

今日签到

点亮在社区的每一天
去签到