Redis 4.0、5.0、6.2标准架构与集群架构均支持 eval、evalsha、script exists、script flush、script load、script kill 命令,均不支持 script debug 命令。集群架构跨 Slot 场景不支持 eval、evalsha、script exists 命令。如下表所示。
| **命令族** | **命令** | **新增说明** |
|---|---|---|
| scripting 族 | EVAL_RO script numkeys [key [key ...]] [arg [arg ...]] | 新增命令,可在只读副本中运行 lua script。 |
| EVALSHA_RO sha1 numkeys [key [key ...]] [arg [arg ...]] | 新增命令,可在只读副本中运行 lua script。 |
各版本具体支持情况,请参见下表。✓ 表示支持,x 表示不支持,- 表示该命令不存在跨 Slot 访问的场景。
| 命令 | 4.0 内存版(标准架构) | 4.0 内存版(集群架构) | 5.0 内存版(标准架构) | 5.0 内存版(集群架构) | 6.2 内存版(标准架构) | 6.2 内存版(集群架构) | 内存版(集群架构)跨 Slot 支持 |
|---|---|---|---|---|---|---|---|
| eval | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | x |
| eval_ro | x | x | x | x | x | x | - |
| evalsha | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | x |
| evalsha_ro | x | x | x | x | x | x | - |
| script debug | x | x | x | x | x | x | - |
| script exists | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | x |
| script flush | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - |
| script load | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - |
| script kill | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - |