Loading...

文章背景图

Valkey Redis 分支缓存部署指南

2026-05-19
0
- 字
- 分钟
|

Valkey Redis 分支缓存部署指南

Valkey Logo

一、项目介绍

Valkey 是一个开源的键值数据存储,可作为缓存、数据库、流媒体和消息代理使用。它支持与 Redis 相同的客户端接口和命令,是 Redis 的社区分支。Valkey 项目由 Linux 基金会托管,在 Redis 改为更严格许可证后由多家公司联合发起。Valkey 保持了与 Redis 的协议兼容性,现有 Redis 客户端无需修改即可连接 Valkey 服务器。

Valkey 的主要优势包括:兼容 Redis 生态系统、支持复制、高可用和持久性、支持不同的内存存储后端、保持 Redis 七版本之前的许可模式。Valkey 提供了多种部署方式,包括 Docker 容器、包管理器安装和源码编译。它默认使用 TCP 端口六三七九,支持 TLS 加密和 RDMA 网络加速。Valkey 还内置了故障转移机制,可在主节点故障时自动提升副本节点为主节点,实现高可用。Valkey 支持五种基本数据结构:字符串、哈希、列表、集合和有序集合,同时提供发布订阅、事务、Lua 脚本、持久化等丰富功能。

Valkey 图标

二、官方信息

项目 信息
仓库地址 github.com/valkey-io/valkey
官方网站 valkey.io
Star 数量 约 25,000+
最近更新 2026-05-19
最新稳定版 v9.1.0
开发语言 C
开源协议 BSD-3-Clause
默认端口 6379

三、项目结构与核心特性

Valkey 仓库主要目录包括服务器源码目录、客户端库目录、模块目录、测试目录和文档目录。服务器源码目录包含核心键值存储逻辑。

核心特性包括:兼容 Redis 协议、复制和高可用、内存存储后端选择、TLS 和 RDMA 支持、多种部署方式、持久化支持、Lua 脚本、发布订阅。

四、环境与版本要求

系统要求:Linux、macOS、FreeBSD。编译依赖 GCC 或 Clang、make、基础系统库。可选依赖 TLS 库、RDMA 库、系统扩展库。

五、本地部署步骤

方式一:Docker 运行

使用官方镜像启动 Valkey 容器,暴露默认端口,挂载数据卷实现持久化。

方式二:包管理器安装

使用系统包管理器安装 Valkey。Debian/Ubuntu、红帽系、macOS 各有对应包。

方式三:源码编译

克隆仓库后直接 make 编译,生成服务器和命令行客户端。运行测试验证正确性,安装到系统。

启动验证

启动服务器进程,默认监听六三七九端口。使用客户端连接服务器,发送 ping 命令验证连接成功。

六、API 用法与示例

常用命令包括设置键值、获取值、删除键、设置过期时间、哈希操作、列表操作、集合操作、发布订阅等。服务器配置可以通过配置文件或运行时修改。客户端连接后可以执行所有 Redis 兼容命令。

七、常见问题 FAQ

Q1:Valkey 和 Redis 有什么区别?

Valkey 是 Redis 的社区分支,保持协议兼容,但采用更开放的 BSD 许可证,由 Linux 基金会治理。

Q2:现有 Redis 客户端可以直接连接吗?

可以。Valkey 保持了与 Redis 的协议兼容。

Q3:如何启用 TLS?

编译时启用 TLS 支持,在配置文件中指定证书和密钥路径。

Q4:如何配置复制和高可用?

在主节点配置文件中设置复制权限,在副本节点配置主节点地址。使用哨兵或内置故障转移机制实现自动故障切换。

Q5:默认端口是多少?

默认使用 TCP 端口六三七九。

Q6:Valkey 支持持久化吗?

支持 RDB 快照和 AOF 日志两种持久化方式。

Valkey 是 Redis 的社区分支项目。在 Redis 从 BSD 许可证改为更严格的许可证之后,由多家公司联合发起,成立了 Linux 基金会托管的 Valkey 项目。Valkey 的目标是保持与 Redis 的协议兼容,让现有的 Redis 用户可以无缝迁移到 Valkey,同时采用更开放的治理模式和许可证。Valkey 保持了 Redis 七版本之前的全部特性和命令,包括五种基本数据结构、发布订阅、事务、Lua 脚本、持久化、复制、高可用等。

Valkey 的一个重要优势是它由 Linux 基金会托管,采用开放的治理模式。与 Redis 由单一公司控制不同,Valkey 的发展方向由社区共同决定,多家公司贡献代码和资源。这种开放治理模式让用户对项目的长期发展更有信心,不用担心许可证突然变更或产品方向调整。许多大型云服务商已经宣布支持 Valkey,将其作为 Redis 的替代方案提供给客户。

Valkey 在技术上也有一些独特的增强。它支持不同的内存存储后端,可以根据场景选择最合适的内存分配器。它支持 TLS 加密传输和 RDMA 高速网络协议,适合对安全和性能有更高要求的企业场景。Valkey 还内置了故障转移机制,可以在主节点故障时自动提升副本节点为主节点,实现高可用部署。这些企业级特性让 Valkey 不仅是 Redis 的简单替代,而是在 Redis 基础上有所发展。

Valkey 默认使用 TCP 端口六三七九,与 Redis 保持一致。这意味着现有的 Redis 客户端和配置文件通常可以直接用于 Valkey,不需要修改。Valkey 提供了多种部署方式,包括 Docker 容器、系统包管理器安装和源码编译。官方维护了 Docker 镜像和各主流 Linux 发行版的软件包,方便用户快速部署和升级。Valkey 的社区活跃,定期发布新版本,持续改进性能和添加新特性。

Valkey 的数据模型与 Redis 完全兼容。它支持五种基本数据结构:字符串、哈希、列表、集合和有序集合。字符串可以存储文本或二进制数据,最大可以存储五百一十二兆字节。哈希适合存储对象属性,列表适合实现队列和栈,集合适合存储不重复的元素,有序集合适合实现排行榜和时间线。这些数据结构覆盖了大部分缓存和消息队列的使用场景。

Valkey 的持久化机制有两种:RDB 快照和 AOF 日志。RDB 快照是定期将内存中的数据保存到磁盘,恢复速度快但可能丢失最后一次快照后的数据。AOF 日志是记录所有写操作,恢复时重放日志,数据更安全但恢复速度较慢。用户可以根据需求选择单独使用或同时使用两种持久化方式。Valkey 还支持混合持久化,结合两者的优点。

Valkey 的复制机制允许将数据从主节点复制到多个副本节点。副本节点可以分担读请求,提高读取性能。当主节点故障时,可以手动或自动将一个副本提升为新的主节点。Valkey 内置了故障转移机制,通过 gossip 协议进行节点间通信,自动检测主节点故障并执行切换。这种高可用部署方式适合对服务可用性要求高的生产环境。

Valkey 的 Lua 脚本功能允许在服务器端执行原子操作。开发者可以编写 Lua 脚本,在服务器端一次性执行多个命令,避免多次网络往返。Lua 脚本在服务器端原子执行,不会被其他命令打断。这种功能适合实现复杂的业务逻辑,比如库存扣减、计数器更新等需要原子性的操作。

Valkey 的部署方式很灵活。开发环境可以直接从源码编译运行,快速启动一个实例。生产环境推荐使用 Docker 容器或系统包管理器安装,便于管理和升级。大规模部署可以使用集群模式,将数据分片到多个节点,突破单机内存限制。Valkey 还支持 TLS 加密传输和 ACL 访问控制,满足企业安全合规要求。

Valkey 与 Redis 的兼容性是它最大的优势之一。现有的 Redis 客户端通常可以直接连接 Valkey 服务器,不需要修改代码。配置文件格式也与 Redis 兼容,可以直接复用现有的部署配置。这种高度兼容性让用户可以平滑迁移,降低切换成本。Valkey 还提供了详细的迁移指南,帮助用户从 Redis 迁移到 Valkey。对于担心 Redis 许可证变化的用户来说,Valkey 是一个理想的替代方案。

Valkey 的发布订阅功能允许客户端订阅频道,接收其他客户端发布的消息。这种功能适合实现实时通知和消息广播。Valkey 还支持模式订阅,可以匹配多个频道。发布订阅是即时推送消息的一种简单实现方式,在聊天系统和实时通知中很常用。

Valkey 的事务功能允许多个命令原子性执行。事务中的命令会按顺序执行,中间不会被其他客户端打断。这种原子性保证适合实现计数器、库存扣减等需要一致性的操作。Valkey 还支持乐观锁,通过监视键的变化来实现并发控制。

Valkey 的管道功能允许一次性发送多个命令,减少网络往返次数。客户端可以将多个命令打包发送,服务器依次执行后返回结果。这种批量执行方式可以显著提高吞吐量,特别是在网络延迟较高的场景下。

Valkey 的监控和管理也很完善。提供了命令行管理工具,可以查看服务器状态、统计信息、客户端连接等。支持慢查询日志,可以记录执行时间较长的命令,帮助优化性能。Valkey 还支持配置在线修改,不需要重启服务器即可调整运行参数。

Valkey 的内存管理也很高效。它使用专门的内存分配器,优化小对象的分配和回收。支持设置最大内存限制,当内存达到上限时自动淘汰旧数据。淘汰策略有多种选择,包括最近最少使用、最不经常使用等。这些内存管理特性让 Valkey 适合作为缓存系统使用。

Valkey 的安全特性也在不断增强。它支持 TLS 加密传输,可以保护数据在传输过程中的安全。支持 ACL 访问控制,可以为不同用户设置不同的权限。支持客户端证书认证,可以实现更严格的身份验证。这些安全特性让 Valkey 适合在对安全有要求的企业环境中部署。

Valkey 的持久化配置很灵活。可以设置 RDB 快照的触发条件,比如写入次数和时间间隔。可以设置 AOF 日志的刷盘策略,比如每次写入都刷盘、每秒刷盘等。不同的策略在数据安全性和性能之间有不同的权衡。用户可以根据自己的需求选择合适的配置。

Valkey 的复制同步也很高效。首次全量同步时,主进程生成 RDB 文件发送给副本。后续增量同步通过复制缓冲区传送写命令。这种增量同步机制让副本可以快速跟上主节点的数据变化。Valkey 还支持部分重同步,在网络短暂中断后不需要全量同步。

Valkey 的集群模式支持数据分片。可以将数据分布到多个节点上,突破单机内存限制。集群通过哈希槽进行分片,客户端可以直接路由到正确的节点。Valkey 集群还支持主从复制和故障转移,每个分片都有副本节点。这种集群架构让 Valkey 可以扩展到很大的规模。

Valkey 的性能表现也很出色。它使用事件驱动的单线程模型,避免了多线程锁竞争。对于键值操作,延迟通常在亚毫秒级别。Valkey 还支持流水线批量操作,减少网络往返。这些特性让 Valkey 可以支撑很高的吞吐量,满足高并发场景的需求。

八、相关链接

Valkey Logo

评论交流

文章目录