Skip to main content
[ PIER ]
Va

Valkey

BSD 许可的开源 Redis 分支 — 同样的速度、同样的 API、无许可证纠纷。

Database #cache#nosql#key-value#redis-compatible

Valkey 是 2024 年 3 月 Redis 公司放弃 BSD 许可证后创建的、社区驱动的、完全开源的 Redis 7.2 分支。由 Linux 基金会维护,与 Redis API 兼容,在主流 Linux 发行版中发行,是需要严格 OSS 许可的项目的默认 Redis 替代品。

使用 Pier 部署

  1. 1 打开 Pier 控制台,点击 Add service。
  2. 2 从模板列表中选择 Valkey。
  3. 3 选择版本、设置服务名称,Pier 会自动配置容器、存储和端口。
  4. 4 如需 HTTPS,请绑定域名。Traefik 会自动签发 Let's Encrypt 证书。

什么是 Valkey?

Valkey 是 2024 年 3 月之前的 Redis。当 Redis 公司在源代码可见 SSPL / RSALv2 下重新许可 Redis 时,Linux 基金会立即分叉了最后的 BSD 许可提交(Redis 7.2.4) 并将其命名为 Valkey。维护者团队包括来自 AWS、Google、Oracle、Snap、Ericsson、 阿里巴巴的工程师,以及离开 Redis 公司的原始 Redis 贡献者。

对最终用户而言,它是具有不同名称和稳定开源许可证的 Redis。RESP 有线协议 相同。命令相同。客户端库无需更改。大多数生产部署通过编辑 Docker Compose 文件中的一行进行切换。

Pier 如何部署它

Pier 使用官方 valkey/valkey Docker 镜像,将 /data 挂载为持久卷。默认 版本为 latest(Valkey 8.x);7-alpine8-alpine 是固定变体。Pier 自动生成强密码(VALKEY_PASSWORD 环境变量,在连接字符串中暴露)。

连接字符串使用 redis:// 方案 — redis://:password@host:6379 — 因为 Redis 客户端不知道服务器端有不同的名称。Pier 的备份、重启和密码轮换操作都 与 Redis 模板上的工作方式相同。

何时不要使用 Valkey

如果你特别需要 Redis Stack 模块(RediSearch、RedisJSON、RedisGraph)— 那些 是 Redis 公司的扩展,仅在 Redis 模板上发布。Valkey 核心今天没有它们。否则 Valkey 在许可条款方面严格优于 Redis。

核心功能

Redis 直接兼容

相同的 RESP 协议、相同的命令、相同的客户端。现有的基于 Redis 的应用无需更改即可工作 — 只需指向 Valkey。

完全 BSD-3-Clause 许可

没有 SSPL,没有 RSALv2,没有源代码可见限制。在商业 SaaS 中使用它,将其作为托管服务销售 — BSD 允许的任何事情。

由 Linux 基金会支持

独立治理,主要维护者来自 AWS、Google、Oracle、Snap、Ericsson 以及离开 Redis 公司的原始 Redis 贡献者团队。

多线程 I/O

用于高吞吐量工作负载的多线程 I/O。在现代多核硬件上比单线程 Redis 更快。

相同的数据结构

字符串、列表、集合、有序集合、哈希、流、发布/订阅、位图、HyperLogLog、地理空间索引 — 与 Redis 7.2 按位兼容。

积极开发

自分叉以来已多次主要发布;持续的性能改进、新命令和错误修复 — 独立于任何单一供应商的路线图。

应用场景

Redis 直接替代品

通过更改 Docker 镜像将现有 Redis 部署切换到 Valkey。大多数应用程序察觉不到。

开源严格环境

政府、受监管行业、需要保证 BSD 许可的键值存储的 OSS 纯粹主义组织。

应用程序缓存

通过缓存昂贵的查询结果、计算视图、渲染模板,以亚毫秒读取减少主数据库负载。

会话存储

将用户会话从 cookie 和 SQL 数据库中迁移出来。自动按键 TTL,跨多个应用服务器共享。

后台任务代理

Sidekiq、Celery、Bull、RQ — 所有基于 Redis 的任务队列都无需更改即可与 Valkey 一起工作。

代码示例

基本 SET/GET(与 Redis 相同) bash
valkey-cli SET session:abc123 "user_id=42" EX 3600
valkey-cli GET session:abc123
原子计数器 bash
valkey-cli INCR pageviews:home
valkey-cli INCRBY downloads:installer 5
发布/订阅 bash
# 订阅者
valkey-cli SUBSCRIBE events

# 发布者(单独会话)
valkey-cli PUBLISH events '{"type":"signup","user":42}'
从 Node.js 连接(ioredis 无需更改即可工作) javascript
import Redis from "ioredis";

const valkey = new Redis(
  "redis://default:password@host:6379"
);
await valkey.set("hello", "world", "EX", 60);

对比

vs Redis 相同的 API、相同的 RESP 有线协议 — 但 Valkey 永远保持 BSD 许可。Redis 7.4+ 是源代码可见(SSPL 或 RSALv2),限制 SaaS 转售。如果许可证对你重要,选 Valkey。
vs KeyDB 两者都是带多线程 I/O 的 Redis 分支。Valkey 具有更强的行业支持(Linux 基金会、AWS、Google)和更快的迭代。KeyDB 由 Snap 拥有,自 Valkey 分叉以来维护较少。
vs DragonflyDB Dragonfly 是从头开始的重新实现,具有新颖的数据结构;Valkey 是 Redis 7.2 分支。Dragonfly 在特定工作负载上可能更快;Valkey 更接近"Redis 但 BSD"。
vs Memcached Memcached 更简单更精简,但仅限于字符串 — 无持久化、列表、集合、发布/订阅或流。Valkey 涵盖 Memcached 的用例加上 Redis 所做的一切。

常见问题

Valkey 在 API 级别与 Redis 有何不同?
不同 — 在协议级别 Valkey 与 Redis 7.2 按位兼容。为 Redis 编写的应用程序、驱动程序和管理工具无需更改即可在 Valkey 上工作。
为什么 Valkey 从 Redis 分叉?
2024 年 3 月,Redis 公司将 Redis 从 BSD 许可证迁移到双 SSPL / RSALv2 源代码可见许可证。Linux 基金会立即从最后的 BSD 许可 Redis(7.2.4)创建了 Valkey,由亚马逊、Google、Oracle、Snap 和原始 Redis 维护者团队支持。
Pier 部署哪个版本?
默认 `latest`(Valkey 8.x)。版本 7-alpine 和 8-alpine 是固定变体。
默认端口和连接?
6379/tcp — 与 Redis 相同。连接字符串也使用 redis:// 方案 — `redis://:password@host:6379`。Pier 服务页面显示它。
新项目应该选 Redis 还是 Valkey?
如果你从头开始并希望避免任何未来的许可风险 — 选 Valkey。如果你需要特定的 Redis 8+ 功能(Redis Stack 模块)— 选 Redis。对于纯缓存/队列用例,它们无法区分。
备份是自动的吗?
是 — Pier 按计划捕获 Valkey 的 RDB 快照 + AOF 文件并可推送到 S3。与 Redis 模板相同的备份机制。
流行的 Redis 库能用吗?
是 — 每个 Redis 驱动程序(jedis、ioredis、redis-py、redis-rs、go-redis、lettuce、StackExchange.Redis)都无需更改即可与 Valkey 一起工作。协议相同。

相关服务

在你的 VPS 上部署

Valkey 是 2024 年 3 月 Redis 公司放弃 BSD 许可证后创建的、社区驱动的、完全开源的 Redis 7.2 分支。由 Linux 基金会维护,与 Redis API 兼容,在主流 Linux 发行版中发行,是需要严格 OSS 许可的项目的默认 Redis 替代品。

部署此服务 →