Engula 与 Redis®、Valkey 协议保持 完整兼容,并遵循 RESP(Redis Serialization Protocol) 标准。 本文总结 Engula 针对多种编程语言中主流 Redis 客户端库所做的兼容性测试方法与结果。
客户端兼容性测试的目标是确保现有 Redis 客户端库在连接 Engula 时 无需修改代码 即可正常工作。 每项测试会运行对应客户端的官方测试套件,并将测试环境中的 Redis 服务替换为 Engula;仅在必要时进行最小化调整。
测试要点:
每项兼容性测试遵循如下标准流程:
engula-server 复制为 /usr/local/bin/redis-server(常用于 Jedis、Lettuce、Redisson 等 Java 客户端)。docker-compose 部署测试环境(常用于 redis-py、NRedisStack)。不同客户端会依据自身设计与工具链采用不同测试方式:
redis-server 替换为 engula-server。测试覆盖 Engula 在以下 Redis 特性上的兼容性:
MULTI/EXEC 与 WATCH/UNWATCH不同语言客户端使用各自的测试运行器:
| 语言 | 测试框架 |
|---|---|
| Go | ginkgo |
| Java | JUnit 5 |
| Node.js | mocha |
| Python | pytest |
| .NET | dotnet test |
Engula 已在以下客户端库上完成测试并通过:
| 客户端库 | 语言 | 状态 |
|---|---|---|
| go-redis | Go | ✅ Compatible |
| Jedis | Java | ✅ Compatible |
| Lettuce | Java | ✅ Compatible |
| NRedisStack | .NET | ✅ Compatible |
| node-redis | Node.js | ✅ Compatible |
| redis-py | Python | ✅ Compatible |
| Redisson | Java | ✅ Compatible |
所有已测试客户端均达到 ✅ 完全兼容:
| 改动级别 | 客户端 | 说明 |
|---|---|---|
| 最小 | go-redis, node-redis, NRedisStack, redis-py | 少量环境/配置调整 |
| 中等 | Jedis, Lettuce | 可执行文件替换与少量测试补丁 |
| 较多 | Redisson | 二进制替换、依赖调优与选择性用例修改 |
完整的分步流程与各客户端测试报告请参考:
该指南包含:
| 组件 | 说明 |
|---|---|
| Protocols | RESP2 and RESP3 |
| Connection Method | Docker networks or localhost:6379 |
| Framework | Client-specific (see table above) |
更完整的版本组合与测试配置请参考 详细测试文档。
欢迎社区参与。如果您发现任何兼容性问题,或有新的客户端测试结果,请联系: 📧 support@engula.cn
说明: 兼容性测试是持续过程,结果可能随 Engula 与客户端版本变化而变化。 最新结果请以 完整测试概览 为准。