此页面提供了各种编程语言推荐的 Valkey 客户端概览。其中包含一个表格,列出了各客户端支持的高级功能,突出了不同客户端的独特优势。
此页面仅包含定期测试并推荐的客户端。然而,值得注意的是,其他支持 Redis OSS 7.2 版本的客户端也兼容 Valkey 7.2 及更高版本。要将您的客户端添加到列表中,请参阅此链接。
目录
Python
valkey GLIDE
- 仓库: valkey GLIDE
-
安装:
pip install valkey-glide
- 版本: v1.3.0
- 版本发布 2025-02-15
- 描述: Valkey GLIDE 旨在为基于 Valkey 和 Redis OSS 的应用程序提供可靠性、优化的性能和高可用性。GLIDE 是一个多语言客户端库,采用 Rust 编写,并带有 Java、node.js 和 Python 等编程语言绑定。
- 许可证: Apache-2.0
valkey-py
- 仓库: valkey-py
-
安装:
pip install valkey
- 版本 6.1.0
- 版本发布 2025-02-11
- 描述: Valkey 键值存储的 Python 接口。
- 许可证: MIT
Node.Js
valkey GLIDE
- 仓库: valkey GLIDE
-
安装:
npm install @valkey/valkey-glide
- 版本: v1.3.0
- 版本发布 2025-02-15
- 描述: Valkey GLIDE 旨在为基于 Valkey 和 Redis OSS 的应用程序提供可靠性、优化的性能和高可用性。GLIDE 是一个多语言客户端库,采用 Rust 编写,并带有 Java、node.js 和 Python 等编程语言绑定。
- 许可证: Apache-2.0
iovalkey
- 仓库: iovalkey
-
安装:
npm install iovalkey
- 版本: v0.3.1
- 版本发布 2025-03-10
- 描述: 一个为 Node.js 设计的健壮、注重性能且功能齐全的 Redis 客户端。
- 许可证: MIT
Java
valkey GLIDE
- 仓库: valkey GLIDE
-
安装
- Maven
//Choose the appropriate classifier <dependency> <groupId>io.valkey</groupId> <artifactId>valkey-glide</artifactId> <classifier>osx-aarch_64 OR linux-aarch_64 OR linux-x86_64</classifier> <version>[1.0.0,2.0.0)</version> </dependency>
- Gradle
//Choose the appropriate classifier implementation group: 'io.valkey', name: 'valkey-glide', version: '1.+', classifier: 'osx-aarch_64 OR linux-aarch_64 OR linux-x86_64'
- Maven
- 版本: v1.3.0
- 版本发布 2025-02-15
- 描述: Valkey GLIDE 旨在为基于 Valkey 和 Redis OSS 的应用程序提供可靠性、优化的性能和高可用性。GLIDE 是一个多语言客户端库,采用 Rust 编写,并带有 Java、node.js 和 Python 等编程语言绑定。
- 许可证: Apache-2.0
valkey-java
- 仓库: valkey-java
-
安装
- Maven
<dependency> <groupId>io.valkey</groupId> <artifactId>valkey-java</artifactId> <version>LATEST</version> </dependency>
- Gradle
implementation 'io.valkey:valkey-java:+'
- Maven
- 版本: v5.3.0
- 版本发布 2024-08-08
- 描述: valkey-java 是 Valkey 的 Java 客户端,致力于保持简洁性和高性能。
- 许可证: MIT
redisson
- 仓库: redisson
-
安装
- Maven
<dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>LATEST</version> </dependency>
- Gradle
implementation 'org.redisson:redisson:+'
- Maven
- 版本: v3.48.0
- 版本发布 2025-05-27
- 描述: Redisson 是一个 Valkey & Redis Java 客户端和实时数据平台。实现了超过 50 个基于 Valkey 的 Java 对象和服务。与 Spring、Hibernate、MyBatis、JCache、Quarkus、Micronaut、Helidon 集成。
- 许可证: Apache-2.0
Go
valkey GLIDE
- 仓库: valkey GLIDE
-
安装:
go get github.com/valkey-io/valkey-glide/go
- 版本: v1.3.0
- 版本发布 2025-02-15
- 描述: Valkey GLIDE 旨在为基于 Valkey 和 Redis OSS 的应用程序提供可靠性、优化的性能和高可用性。GLIDE 是一个多语言客户端库,采用 Rust 编写,并带有 Java、node.js 和 Python 等编程语言绑定。
- 许可证: Apache-2.0
valkey-go
- 仓库: valkey-go
-
安装:
go get github.com/valkey-io/valkey-go
- 版本 1.0.55
- 版本发布 2025-02-03
- 描述: 一个快速的 Golang Valkey 客户端,支持自动管道化和服务器辅助的客户端缓存。
- 许可证: Apache-2.0
高级功能概览
-
从副本读取 - 从副本节点读取数据的能力,这对于负载均衡和减轻主节点负载非常有用。此功能在读密集型应用程序中尤为重要。
-
智能退避以防止连接风暴 - 一种策略,通过在尝试重新连接 Valkey 服务器时逐步延长重试等待时间,以防止连接风暴。这有助于在拓扑更新、高需求时期或网络不稳定期间减轻服务器负载。
-
PubSub 状态恢复 - 在客户端重新连接后恢复 Pub/Sub(发布/订阅)通道状态的能力。此功能确保客户端在断开连接或拓扑更新(例如添加或删除分片)后,无论是对于传统 Pub/Sub 还是分片 Pub/Sub,都能继续接收消息。客户端将自动重新订阅到新节点。优点是简化了应用程序代码,无需在重新连接时处理重新订阅新节点的问题。
-
集群扫描 - 此功能确保扫描集群的用户体验和保证与扫描单个节点的用户体验和保证相同。SCAN 函数作为基于游标的迭代器操作。每次命令执行后,服务器都会提供一个更新的游标,该游标必须用作后续调用的游标参数。使用 SCAN 的完整迭代将从头到尾检索集合中存在的所有元素。如果一个元素在迭代开始时存在于集合中并一直保留到迭代结束,SCAN 将返回它。相反,任何在迭代开始前被删除且在过程中未重新添加的元素都不会被 SCAN 返回。支持此功能的客户端可确保在 SCAN 操作期间,即使发生故障转移或集群扩缩(入或出),扫描迭代器也保持有效。
-
基于延迟从副本读取 - 此功能允许从最近的副本读取数据,即提供最佳延迟的副本。它支持复杂的部署,其中副本分布在不同的距离,包括不同的地理区域,以确保从最近的副本读取数据,从而最大限度地减少延迟。
-
基于可用区从副本读取 - 此功能允许从同一可用区(AZ)内的副本读取数据。在多可用区云环境中运行 Valkey 时,最好将流量限制在同一可用区内以降低成本和延迟。通过从与客户端位于同一可用区内的副本读取数据,您可以优化性能并最大程度地减少跨可用区数据传输费用。有关此功能及其实现的更多详细信息,请参阅此链接。
-
客户端缓存 - Valkey 客户端缓存是一项功能,允许客户端在客户端缓存 Valkey 查询结果,从而减少与 Valkey 服务器频繁通信的需要。这可以通过降低延迟、减少网络使用和成本以及减轻 Valkey 服务器负载来显著提高应用程序性能。
-
CLIENT CAPA redirect
支持 -CLIENT CAPA redirect
功能在 Valkey 8 中引入,旨在促进无缝升级而不会在独立模式下导致错误。启用此功能后,副本可以将数据访问命令(包括读写操作)重定向到主实例。这确保了升级过程中的不间断服务。有关此功能的更多详细信息,请参阅此链接。 -
持久连接池 - 此功能使 Valkey 客户端能够维护与 Valkey 服务器的持久连接池,从而提高性能并降低开销。客户端无需为每个请求建立新连接,而是可以重用连接池中的现有连接,从而最大限度地减少连接设置所需的时间和资源。
功能对比表
名称 | 语言 | 从副本读取 | 智能退避以防止连接风暴 | PubSub 状态恢复 | 集群扫描 | 基于延迟从副本读取 | 基于可用区从副本读取 | 客户端缓存 | 客户端能力重定向 | 持久连接池 |
---|---|---|---|---|---|---|---|---|---|---|
valkey GLIDE | python | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ | ✗ |
valkey-py | python | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ |
valkey GLIDE | node.js | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ | ✗ |
iovalkey | node.js | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ |
valkey GLIDE | java | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ | ✗ |
valkey-java | java | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
redisson | java | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ |
valkey GLIDE | go | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ | ✗ |
valkey-go | go | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✗ | ✓ |
phpredis | php | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ |
predis | php | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |