
随着 Valkey 生态的快速发展,其官方支持的现代化客户端也覆盖到了 PHP 语言。这对于 PHP 开发者来说,意味着拥有了一个更可靠、性能更强的选择。
Valkey Glide PHP 是什么?
Valkey Glide PHP 是 Valkey 官方推出的 GLIDE 项目在 PHP 语言上的绑定实现。它是一个开源的 Valkey / Redis OSS 客户端库,核心部分使用 Rust 编写以保证高性能和内存安全,再通过 PHP 扩展的形式暴露给开发者使用。
GLIDE(General Language Independent Driver for the Enterprise)是 Valkey 社区为企业级应用设计的多语言客户端家族,目前已经支持 Java、Python、Node.js、Go 等主流语言。其 PHP 版本于 2026 年 1 月 28 日正式发布了 v1.0.0 稳定版。
它的核心设计目标非常明确:可靠性、性能优化和高可用。这使其特别适合大规模、分布式的 Valkey / Redis 应用场景。同时,它尽量保持了与经典 phpredis 扩展的 API 兼容,这大大降低了现有项目的迁移成本。
Valkey 是什么?
Valkey 是一个开源的、高性能的内存键值存储数据库(in-memory key-value datastore)。它于 2024 年由 Linux 基金会托管,作为 Redis OSS 的社区友好分支而诞生,基于 Redis 7.2.4 的代码,并保留了宽松的 BSD-3 开源许可证。
作为一种功能丰富的 内存数据库,Valkey 能够支持多种工作负载,包括:
- 高速缓存(caching)
- 会话存储(session store)
- 消息队列与发布/订阅(message queue & Pub/Sub)
- 实时排行榜、计数器
- 甚至作为轻量级的主数据库使用
它内置了字符串、列表、哈希、集合、有序集合、流、地理空间索引等多种数据结构,读写延迟通常可达微秒级。同时,它还支持集群高可用、持久化(RDB + AOF)以及多线程优化等企业级特性。
简单来说,Valkey = Redis 的开源延续 + 社区驱动创新。目前,AWS ElastiCache、Google Cloud Memorystore、阿里云等主流云服务商都已提供对 Valkey 的托管支持。
如何安装
v1.0.0 版本推荐在 PHP ≥ 8.2 或 8.3 的 Linux/macOS 环境中,通过以下几种方式安装:
方式一:使用 pie 安装(推荐,来自 Packagist)
首先安装 pie 工具,然后执行以下命令:
pie install valkey-io/valkey-glide-php:1.0.0
方式二:通过 PECL 直接安装 release 包
pecl install https://github.com/valkey-io/valkey-glide-php/releases/download/v1.0.0/valkey_glide-1.0.0.tgz
安装完成后,需要在 php.ini 配置文件中添加一行来启用扩展:
extension=valkey_glide
方式三:从源码编译(适合开发或定制需求)
这种方式需要预先准备好 Rust、php-dev、protoc 等依赖环境。
git clone --recurse-submodules https://github.com/valkey-io/valkey-glide-php.git
cd valkey-glide-php
python3 utils/patch_proto_and_rust.py
cargo build --release
phpize
./configure --enable-valkey-glide
make && make install
编译完成后,同样需要在 php.ini 中启用 extension=valkey_glide。
无论采用哪种方式安装,都可以通过以下命令验证扩展是否成功加载:
php -m | grep valkey_glide
注意: 当前版本暂不支持 Alpine Linux 或基于 musl libc 的环境。
主要特性是什么?
Valkey Glide PHP v1.0.0 版本带来了以下核心亮点,旨在提升开发体验和系统 高性能:
- 集群智能操作:自动处理
MGET、MSET、DEL、FLUSHALL 等涉及多个 Key 的命令,开发者无需再手动按槽位(slot)进行分组,大幅简化了集群操作。
- 统一 Cluster Scan:在分片集群环境下,提供了方便且安全的遍历所有 Key 的方法。
- PHPRedis 高度兼容:通过提供的别名文件,完全支持
new Redis() 和 new RedisCluster() 的传统写法,使得从 phpredis 迁移过来的成本极低。
- TLS 安全连接:完整支持加密传输,这是 v1.0.0 版本重点新增的安全特性。
- 完整功能支持:支持发布订阅(Pub/Sub)、Lua 脚本以及服务器端函数(v1.0.0 新增)。
- 高可用设计:具备自动拓扑发现、连接重试、读写分离(如
prefer-replica 策略)等能力。
- Rust 核心驱动:底层由 Rust 编写,带来了内存安全和高性能的双重保障,性能通常优于纯 PHP 实现的客户端。
- 丰富的企业级特性:包括 OpenTelemetry 可观测性支持、事务、AWS IAM 认证(针对 ElastiCache)以及灵活的日志记录等。
相比传统的 phpredis 扩展,Valkey Glide PHP 能更及时地跟进 Valkey 新版本的特性,并且在集群场景下的表现更加智能和稳定。
如何快速开始使用
使用原生 ValkeyGlide 接口(单机模式)
<?php
$client = new ValkeyGlide();
$client->connect(addresses: [['host' => '127.0.0.1', 'port' => 6379]]);
$client->set('welcome', 'Hello Valkey Glide PHP v1.0!');
echo $client->get('welcome') . PHP_EOL; // 输出: Hello Valkey Glide PHP v1.0!
$client->close();
?>
使用 PHPRedis 兼容模式(最推荐的平滑迁移方案)
通过引入别名文件,你可以几乎零成本地替换原有代码。
<?php
require_once 'vendor/valkey-io/valkey-glide-php/phpredis_aliases.php';
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->set('key', 'value from glide');
echo $redis->get('key') . PHP_EOL;
$redis->close();
?>
集群模式使用示例
<?php
$addresses = [
['host' => 'localhost', 'port' => 7001],
['host' => 'localhost', 'port' => 7002],
];
$client = new ValkeyGlideCluster(addresses: $addresses);
$client->set('foo', 'bar');
echo $client->get('foo');
?>
Valkey Glide PHP v1.0.0 的发布,让 PHP 开发者能够以极低的迁移成本,用熟悉的代码风格享受到 Valkey 官方客户端的可靠性、高性能和未来的扩展能力。无论是启动新项目,还是计划从 phpredis 进行升级,现在都是一个非常好的试用时机。对于关注 Redis 替代方案和 PHP 生态发展的开发者来说,这无疑是一个值得在 云栈社区 等开发者论坛中关注和讨论的重要更新。
延伸阅读(官方资料)