Valkey
BSD 许可的开源 Redis 分支 — 同样的速度、同样的 API、无许可证纠纷。
Valkey 是 2024 年 3 月 Redis 公司放弃 BSD 许可证后创建的、社区驱动的、完全开源的 Redis 7.2 分支。由 Linux 基金会维护,与 Redis API 兼容,在主流 Linux 发行版中发行,是需要严格 OSS 许可的项目的默认 Redis 替代品。
使用 Pier 部署
- 1 打开 Pier 控制台,点击 Add service。
- 2 从模板列表中选择 Valkey。
- 3 选择版本、设置服务名称,Pier 会自动配置容器、存储和端口。
- 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-alpine 和 8-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 一起工作。
代码示例
valkey-cli SET session:abc123 "user_id=42" EX 3600
valkey-cli GET session:abc123 valkey-cli INCR pageviews:home
valkey-cli INCRBY downloads:installer 5 # 订阅者
valkey-cli SUBSCRIBE events
# 发布者(单独会话)
valkey-cli PUBLISH events '{"type":"signup","user":42}' 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 分叉?
Pier 部署哪个版本?
默认端口和连接?
新项目应该选 Redis 还是 Valkey?
备份是自动的吗?
流行的 Redis 库能用吗?
相关服务
在你的 VPS 上部署
Valkey 是 2024 年 3 月 Redis 公司放弃 BSD 许可证后创建的、社区驱动的、完全开源的 Redis 7.2 分支。由 Linux 基金会维护,与 Redis API 兼容,在主流 Linux 发行版中发行,是需要严格 OSS 许可的项目的默认 Redis 替代品。
部署此服务 →