docs: update README and add cts_refer doc
Signed-off-by: daz-3ux <daz-3ux@proton.me>
This commit is contained in:
parent
df96fe7d45
commit
939ad14adc
16
README-CN.md
16
README-CN.md
|
@ -9,6 +9,10 @@
|
|||
pip3 install -r requirements.txt
|
||||
```
|
||||
|
||||
# 可测试命令
|
||||
|
||||
CTS 可以测试的命令及其对应的版本信息可参考[此表](cts_refer.md)
|
||||
|
||||
# 如何使用
|
||||
|
||||
一些命令行支持的参数如下所示:
|
||||
|
@ -93,12 +97,12 @@ Visit http://localhost:8000 for the report.
|
|||
```
|
||||
整体上是一个 JSON数组,包含多条测试 case,每一个都是 JSON Object,`command`和`result`是一一对应的。除过上述示例中的字段,还有一些字段如下:
|
||||
|
||||
|name|value| 含义 |
|
||||
|---|---|-----------------------------|
|
||||
|tags|standalone,cluster| 只在tags指定的模式下才允许此case |
|
||||
|skipped|true| 跳过此case |
|
||||
|command_binary|true| 将命令转为二进制,例如命令中包含非可见的ascii字符 |
|
||||
|sort_result|true| 对返回结果进行排序 |
|
||||
| name | value | 含义 |
|
||||
|----------------|--------------------|-----------------------------|
|
||||
| tags | standalone,cluster | 只在tags指定的模式下才允许此case |
|
||||
| skipped | true | 跳过此case |
|
||||
| command_binary | true | 将命令转为二进制,例如命令中包含非可见的ascii字符 |
|
||||
| sort_result | true | 对返回结果进行排序 |
|
||||
|
||||
### 使用别的编程语言使用此工具
|
||||
本项目的主要工作是我们在 `cts.json`中增加了超过 7000 行测试,如果您希望用别的编程语言(例如 Java, Go, Rust等)实现相同功能的测试工具,那么您只需要解析 `cts.json` 的格式,并且将测试依次执行即可,玩的愉快。
|
||||
|
|
20
README.md
20
README.md
|
@ -2,7 +2,7 @@
|
|||
|
||||
[](https://github.com/tair-opensource/compatibility-test-suite-for-redis/actions/workflows/4.0.yaml) [](https://github.com/tair-opensource/compatibility-test-suite-for-redis/actions/workflows/5.0.yaml) [](https://github.com/tair-opensource/compatibility-test-suite-for-redis/actions/workflows/6.0.yaml) [](https://github.com/tair-opensource/compatibility-test-suite-for-redis/actions/workflows/6.2.yaml) [](https://github.com/tair-opensource/compatibility-test-suite-for-redis/actions/workflows/7.0.yaml) [](https://github.com/tair-opensource/compatibility-test-suite-for-redis/actions/workflows/7.2.yaml) [](https://github.com/tair-opensource/compatibility-test-suite-for-redis/actions/workflows/unstable.yaml)
|
||||
|
||||
compatibility-test-suite-for-redis is used to test whether your redis-like database is compatible with Redis versions (such as
|
||||
compatibility-test-suite-for-redis(CTS) is used to test whether your redis-like database is compatible with Redis versions (such as
|
||||
6.0, 7.0, etc.) [中文文档](README-CN.md)
|
||||
|
||||
# Install
|
||||
|
@ -13,6 +13,10 @@ requires `Python 3.7` or later.
|
|||
pip3 install -r requirements.txt
|
||||
```
|
||||
|
||||
# Testable Commands
|
||||
|
||||
Refer to [this table](cts_refer.md) for the commands that CTS can test and their corresponding version information.
|
||||
|
||||
# How to use
|
||||
|
||||
```
|
||||
|
@ -71,7 +75,7 @@ connecting to 127.0.0.1:6379 using standalone client
|
|||
...
|
||||
Visit http://localhost:8000 for the report.
|
||||
```
|
||||
Then, an Http Server will be started on http://localhost:8000 by default, and you can access it to get reports.
|
||||
Then, a Http Server will be started on http://localhost:8000 by default, and you can access it to get reports.
|
||||
|
||||
## More uses
|
||||
|
||||
|
@ -95,12 +99,12 @@ When you need to migrate the business system from A database to B, in order to p
|
|||
```
|
||||
Overall, it is a JSON array, containing multiple test cases, each of which is a JSON Object, and `command` and `result` are in one-to-one correspondence. In addition to the fields in the example, there are some as follows:
|
||||
|
||||
| name | value |meaning|
|
||||
|---|-----------------------|---|
|
||||
| tags | standalone or cluster |This case is only allowed in the mode specified by tags|
|
||||
| skipped | true |skip this case|
|
||||
| command_binary | true |Convert the command to binary, such as the command contains non-visible ascii characters|
|
||||
| sort_result | true |Sort the returned results|
|
||||
| name | value | meaning |
|
||||
|----------------|-----------------------|------------------------------------------------------------------------------------------|
|
||||
| tags | standalone or cluster | This case is only allowed in the mode specified by tags |
|
||||
| skipped | true | skip this case |
|
||||
| command_binary | true | Convert the command to binary, such as the command contains non-visible ascii characters |
|
||||
| sort_result | true | Sort the returned results |
|
||||
|
||||
### Test with another programming language
|
||||
The main work of this project is that we have added more than 7000 lines of tests in `cts.json`, if you want to implement tests in other programming languages (such as Java, Go, Rust, etc.), then you only need to parse `cts.json ` format, and execute the tests sequentially, have fun.
|
||||
|
|
|
@ -0,0 +1,297 @@
|
|||
> 1. The table content consists of the commands supported by CTS (compatibility-test-suite-for-redis) and their version information
|
||||
> 2. This table is generated based on the command JSON format description of Redis 7.2. If you have any doubts, you can refer to the relevant files
|
||||
> 3. If the table information does not match the actual testing, please submit an Issue :)
|
||||
- Supported major versions
|
||||
- 1.0
|
||||
- 2.8
|
||||
- 3.2
|
||||
- 4.0
|
||||
- 5.0
|
||||
- 6.0
|
||||
- 6.2
|
||||
- 7.0
|
||||
- 7.2
|
||||
|
||||
|
||||
| **group** | **command** | | **Version 1.0** | **Version 2.8** | **Version 3.2** | **Version 4.0** | **Version 5.0** | **Version 6.0** | **Version 6.2** | **Version 7.0** | **Version 7.2** |
|
||||
|-------------|-------------------------------------------------------|--------------------------------------------------------|-----------------|-----------------|-----------------|-----------------|-------------------------------------------------------------------------------------------------|-------------------------------------------|-----------------|--------------------------------------------------------|-----------------|
|
||||
| **generic** | [del](https://redis.io/commands/del/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [unlink](https://redis.io/commands/unlink/) | | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [rename](https://redis.io/commands/rename/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [renamenx](https://redis.io/commands/renamenx/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [randomkey](https://redis.io/commands/randomkey/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [exists](https://redis.io/commands/exists/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [ttl](https://redis.io/commands/ttl/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [pttl](https://redis.io/commands/pttl/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [expire](https://redis.io/commands/expire/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ['7.0.0', 'Added options: `NX`, `XX`, `GT` and `LT`.'] | ✓ |
|
||||
| | [expireat](https://redis.io/commands/expireat/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ['7.0.0', 'Added options: `NX`, `XX`, `GT` and `LT`.'] | ✓ |
|
||||
| | [pexpire](https://redis.io/commands/pexpire/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ['7.0.0', 'Added options: `NX`, `XX`, `GT` and `LT`.'] | ✓ |
|
||||
| | [pexpireat](https://redis.io/commands/pexpireat/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ['7.0.0', 'Added options: `NX`, `XX`, `GT` and `LT`.'] | ✓ |
|
||||
| | [expiretime](https://redis.io/commands/expiretime/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | [pexpiretime](https://redis.io/commands/pexpiretime/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | [persist](https://redis.io/commands/persist/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [dump](https://redis.io/commands/dump/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [touch](https://redis.io/commands/touch/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [restore](https://redis.io/commands/restore/) | | ✗ | ✓ | ✓ | ✓ | ['5.0.0', 'Added the `ABSTTL` modifier.']/['5.0.0', 'Added the `IDLETIME` and `FREQ` options.'] | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [scan](https://redis.io/commands/scan/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ['6.0.0', 'Added the `TYPE` subcommand.'] | ✓ | ✓ | ✓ |
|
||||
| | [keys](https://redis.io/commands/keys/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [move](https://redis.io/commands/move/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [copy](https://redis.io/commands/copy/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
|
||||
| | [type](https://redis.io/commands/type/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [wait](https://redis.io/commands/wait/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [sort](https://redis.io/commands/sort/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [sort_ro](https://redis.io/commands/sort_ro/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | [migrate](https://redis.io/commands/migrate/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ['6.0.0', 'Added the `AUTH2` option.'] | ✓ | ✓ | ✓ |
|
||||
| | object | [freq](https://redis.io/commands/object-freq/) | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | | [refcount](https://redis.io/commands/object-refcount/) | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | | [idletime](https://redis.io/commands/object-idletime/) | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | | [encoding](https://redis.io/commands/object-encoding/) | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
|
||||
| **group** | **command** | | **Version 1.0** | **Version 2.8** | **Version 3.2** | **Version 4.0** | **Version 5.0** | **Version 6.0** | **Version 6.2** | **Version 7.0** | **Version 7.2** |
|
||||
|------------|---------------------------------------------------------|----------------------------------------------------------|-----------------|-----------------|-----------------|--------------------------------------------------------|-----------------|-----------------|-------------------------------------------------------|--------------------------------------------------------------------------------|-----------------------------------------------------------------------------|
|
||||
| **server** | acl | [whoami](https://redis.io/commands/acl-whoami/) | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | | [setuser](https://redis.io/commands/acl-setuser/) | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ['6.2.0', 'Added Pub/Sub channel patterns.'] | ['7.0.0', 'Added selectors and key based permissions.'] | ✓ |
|
||||
| | | [deluser](https://redis.io/commands/acl-deluser/) | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | | [users](https://redis.io/commands/acl-users/) | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | | [log](https://redis.io/commands/acl-log/) | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ['7.2.0', 'Added entry ID, timestamp created, and timestamp last updated.'] |
|
||||
| | | [dryrun](https://redis.io/commands/acl-dryrun/) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | config | [get](https://redis.io/commands/config-get/) | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ['7.0.0', 'Added the ability to pass multiple pattern parameters in one call'] | ✓ |
|
||||
| | | [set](https://redis.io/commands/config-set/) | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ['7.0.0', 'Added the ability to pass multiple pattern parameters in one call'] | ✓ |
|
||||
| | | [resetstat](https://redis.io/commands/config-resetstat/) | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | module | [list](https://redis.io/commands/module-list/) | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [bgsave](https://redis.io/commands/bgsave/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [bgrewriteaof](https://redis.io/commands/bgrewriteaof/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [dbsize](https://redis.io/commands/dbsize/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [swapdb](https://redis.io/commands/swapdb/) | | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [slaveof](https://redis.io/commands/slaveof/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [flushall](https://redis.io/commands/flushall/) | | ✓ | ✓ | ✓ | ['4.0.0', 'Added the `ASYNC` flushing mode modifier.'] | ✓ | ✓ | ['6.2.0', 'Added the `SYNC` flushing mode modifier.'] | ✓ | ✓ |
|
||||
| | [flushdb](https://redis.io/commands/flushdb/) | | ✓ | ✓ | ✓ | ['4.0.0', 'Added the `ASYNC` flushing mode modifier.'] | ✓ | ✓ | ['6.2.0', 'Added the `SYNC` flushing mode modifier.'] | ✓ | ✓ |
|
||||
| | [replicaof](https://redis.io/commands/replicaof/) | | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
|
||||
|
||||
| **group** | **command** | | **Version 1.0** | **Version 2.8** | **Version 3.2** | **Version 4.0** | **Version 5.0** | **Version 6.0** | **Version 6.2** | **Version 7.0** | **Version 7.2** |
|
||||
|------------|-------------------------------------------------------|-----|-----------------|-----------------|-----------------|-----------------|-----------------|------------------------------------------|---------------------------------------------------------|----------------------------------------------------------------------|-----------------|
|
||||
| **string** | [set](https://redis.io/commands/set/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ['6.0.0', 'Added the `KEEPTTL` option.'] | ['6.2.0', 'Added the `GET`, `EXAT` and `PXAT` option.'] | ['7.0.0', 'Allowed the `NX` and `GET` options to be used together.'] | ✓ |
|
||||
| | [setex](https://redis.io/commands/setex/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [setnx](https://redis.io/commands/setnx/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [psetex](https://redis.io/commands/psetex/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [append](https://redis.io/commands/append/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [get](https://redis.io/commands/get/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [getex](https://redis.io/commands/getex/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
|
||||
| | [getdel](https://redis.io/commands/getdel/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
|
||||
| | [substr](https://redis.io/commands/substr/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [strlen](https://redis.io/commands/strlen/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [getset](https://redis.io/commands/getset/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [setrange](https://redis.io/commands/setrange/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [getrange](https://redis.io/commands/getrange/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [incr](https://redis.io/commands/incr/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [decr](https://redis.io/commands/decr/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [incrby](https://redis.io/commands/incrby/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [decrby](https://redis.io/commands/decrby/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [incrbyfloat](https://redis.io/commands/incrbyfloat/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [mset](https://redis.io/commands/mset/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [msetnx](https://redis.io/commands/msetnx/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [mget](https://redis.io/commands/mget/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [lcs](https://redis.io/commands/lcs/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
|
||||
| **group** | **command** | | **Version 1.0** | **Version 2.8** | **Version 3.2** | **Version 4.0** | **Version 5.0** | **Version 6.0** | **Version 6.2** | **Version 7.0** | **Version 7.2** |
|
||||
|------------|-------------------------------------------------------|---|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|---------------------------------------------|-----------------|
|
||||
| **bitmap** | [setbit](https://redis.io/commands/setbit/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [getbit](https://redis.io/commands/getbit/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [bitop](https://redis.io/commands/bitop/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [bitpos](https://redis.io/commands/bitpos/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ['7.0.0', 'Added the `BYTE / BIT` option.'] | ✓ |
|
||||
| | [bitcount](https://redis.io/commands/bitcount/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ['7.0.0', 'Added the `BYTE / BIT` option.'] | ✓ |
|
||||
| | [bitfield](https://redis.io/commands/bitfield/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [bitfield_ro](https://redis.io/commands/bitfield_ro/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ |
|
||||
|
||||
| **group** | **command** | | **Version 1.0** | **Version 2.8** | **Version 3.2** | **Version 4.0** | **Version 5.0** | **Version 6.0** | **Version 6.2** | **Version 7.0** | **Version 7.2** |
|
||||
|-----------------|-----------------------------------------------|---|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|
|
||||
| **transaction** | [discard](https://redis.io/commands/discard/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [exec](https://redis.io/commands/exec/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [multi](https://redis.io/commands/multi/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [unwatch](https://redis.io/commands/unwatch/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [watch](https://redis.io/commands/watch/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
|
||||
| **group** | **command** | | **Version 1.0** | **Version 2.8** | **Version 3.2** | **Version 4.0** | **Version 5.0** | **Version 6.0** | **Version 6.2** | **Version 7.0** | **Version 7.2** |
|
||||
|-------------|-----------------------------------------------------------|---|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|
|
||||
| hyperloglog | [pfadd](https://redis.io/commands/pfadd/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [pfcount](https://redis.io/commands/pfcount/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [pfmerge](https://redis.io/commands/pfmerge/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [pfdebug](https://redis.io/commands/pfdebug/) [不支持] | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [pfselftest](https://redis.io/commands/pfselftest/) [不支持] | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
|
||||
|
||||
|
||||
| **group** | **command** | | **Version 1.0** | **Version 2.8** | **Version 3.2** | **Version 4.0** | **Version 5.0** | **Version 6.0** | **Version 6.2** | **Version 7.0** | **Version 7.2** |
|
||||
|-----------|-----------------------------------------------------|---|-----------------|-----------------|-----------------|----------------------------------------------------|-----------------|--------------------------------------------------------------------------|------------------------------------------|-----------------|-----------------|
|
||||
| **list** | [lset](https://redis.io/commands/lset/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [llen](https://redis.io/commands/llen/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [lpush](https://redis.io/commands/lpush/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [lpushx](https://redis.io/commands/lpushx/) | | ✗ | ✓ | ✓ | ['4.0.0', 'Accepts multiple `element` arguments.'] | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [lindex](https://redis.io/commands/lindex/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [lpos](https://redis.io/commands/lpos/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
|
||||
| | [lrem](https://redis.io/commands/lrem/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [lrange](https://redis.io/commands/lrange/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [rpush](https://redis.io/commands/rpush/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [ltrim](https://redis.io/commands/ltrim/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [linsert](https://redis.io/commands/linsert/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [rpushx](https://redis.io/commands/rpushx/) | | ✗ | ✗ | ✗ | ['4.0.0', 'Accepts multiple `element` arguments.'] | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [rpoplpush](https://redis.io/commands/rpoplpush/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [lmove](https://redis.io/commands/lmove/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
|
||||
| | [lmpop](https://redis.io/commands/lmpop/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | [rpop](https://redis.io/commands/rpop/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ['6.2.0', 'Added the `count` argument.'] | ✓ | ✓ |
|
||||
| | [lpop](https://redis.io/commands/lpop/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ['6.2.0', 'Added the `count` argument.'] | ✓ | ✓ |
|
||||
| | [brpop](https://redis.io/commands/brpop/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ['6.0.0', '`timeout` is interpreted as a double instead of an integer.'] | ✓ | ✓ | ✓ |
|
||||
| | [blpop](https://redis.io/commands/blpop/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ['6.0.0', '`timeout` is interpreted as a double instead of an integer.'] | ✓ | ✓ | ✓ |
|
||||
| | [brpoplpush](https://redis.io/commands/brpoplpush/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ['6.0.0', '`timeout` is interpreted as a double instead of an integer.'] | ✓ | ✓ | ✓ |
|
||||
| | [blmove](https://redis.io/commands/blmove/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
|
||||
| | [blmpop](https://redis.io/commands/blmpop/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
|
||||
| **group** | **command** | | **Version 1.0** | **Version 2.8** | **Version 3.2** | **Version 4.0** | **Version 5.0** | **Version 6.0** | **Version 6.2** | **Version 7.0** | **Version 7.2** |
|
||||
|-----------|---------------------------------------------------------|---|-----------------|-----------------|-----------------|--------------------------------------------------------------|-----------------|-----------------|-----------------|-----------------|-----------------|
|
||||
| **hash** | [hset](https://redis.io/commands/hset/) | | ✗ | ✓ | ✓ | ['4.0.0', 'Accepts multiple `field` and `value` arguments.'] | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [hsetnx](https://redis.io/commands/hsetnx/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [hget](https://redis.io/commands/hget/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [hstrlen](https://redis.io/commands/hstrlen/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [hexists](https://redis.io/commands/hexists/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [hlen](https://redis.io/commands/hlen/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [hkeys](https://redis.io/commands/hkeys/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [hvals](https://redis.io/commands/hvals/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [hgetall](https://redis.io/commands/hgetall/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [hincrby](https://redis.io/commands/hincrby/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [hincrbyfloat](https://redis.io/commands/hincrbyfloat/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [hscan](https://redis.io/commands/hscan/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [hrandfield](https://redis.io/commands/hrandfield/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
|
||||
| | [hdel](https://redis.io/commands/hdel/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [hmset](https://redis.io/commands/hmset/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [hmget](https://redis.io/commands/hmget/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
|
||||
| **group** | **command** | | **Version 1.0** | **Version 2.8** | **Version 3.2** | **Version 4.0** | **Version 5.0** | **Version 6.0** | **Version 6.2** | **Version 7.0** | **Version 7.2** |
|
||||
|-----------|-------------------------------------------------------|---|-----------------|-----------------|------------------------------------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|
|
||||
| **set** | [sadd](https://redis.io/commands/sadd/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [srem](https://redis.io/commands/srem/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [sscan](https://redis.io/commands/sscan/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [scard](https://redis.io/commands/scard/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [spop](https://redis.io/commands/spop/) | | ✓ | ✓ | ['3.2.0', 'Added the `count` argument.'] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [srandmember](https://redis.io/commands/srandmember/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [smembers](https://redis.io/commands/smembers/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
|
||||
| | [sismember](https://redis.io/commands/sismember/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [smismember](https://redis.io/commands/smismember/) | | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [sdiffstore](https://redis.io/commands/sdiffstore/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [sinterstore](https://redis.io/commands/sinterstore/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [sunionstore](https://redis.io/commands/sunionstore/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [sdiff](https://redis.io/commands/sdiff/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [sinter](https://redis.io/commands/sinter/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [sunion](https://redis.io/commands/sunion/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [smove](https://redis.io/commands/smove/) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [sintercard](https://redis.io/commands/sintercard/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
|
||||
| **group** | **command** | | **Version 1.0** | **Version 2.8** | **Version 3.2** | **Version 4.0** | **Version 5.0** | **Version 6.0** | **Version 6.2** | **Version 7.0** | **Version 7.2** |
|
||||
|----------------|-----------------------------------------------------------------|---|-----------------|-----------------|-----------------|-----------------|-----------------|--------------------------------------------------------------------------|-----------------------------------------------------------------------|-----------------|-------------------------------------------------------|
|
||||
| **sorted set** | [zadd](https://redis.io/commands/zadd/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ['6.2.0', 'Added the `GT` and `LT` options.'] | ✓ | ✓ |
|
||||
| | [zrem](https://redis.io/commands/zrem/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [zcard](https://redis.io/commands/zcard/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [zrank](https://redis.io/commands/zrank/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ['7.2.0', 'Added the optional `WITHSCORE` argument.'] |
|
||||
| | [zrevrank](https://redis.io/commands/zrevrank/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ['7.2.0', 'Added the optional `WITHSCORE` argument.'] |
|
||||
| | [zcount](https://redis.io/commands/zcount/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [zincrby](https://redis.io/commands/zincrby/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [zscan](https://redis.io/commands/zscan/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [zrandmember](https://redis.io/commands/zrandmember/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
|
||||
| | [zremrangebylex](https://redis.io/commands/zremrangebylex/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [zremrangebyscore](https://redis.io/commands/zremrangebyscore/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [zremrangebyrank](https://redis.io/commands/zremrangebyrank/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [zlexcount](https://redis.io/commands/zlexcount/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [zrangebylex](https://redis.io/commands/zrangebylex/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [zrevrangebylex](https://redis.io/commands/zrevrangebylex/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [zrangebyscore](https://redis.io/commands/zrangebyscore/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [zrevrangebyscore](https://redis.io/commands/zrevrangebyscore/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [zscore](https://redis.io/commands/zscore/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [zmscore](https://redis.io/commands/zmscore/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
|
||||
| | [zpopmax](https://redis.io/commands/zpopmax/) | | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [zpopmin](https://redis.io/commands/zpopmin/) | | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [zmpop](https://redis.io/commands/zmpop/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | [bzmpop](https://redis.io/commands/bzmpop/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | [zintercard](https://redis.io/commands/zintercard/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | [bzpopmin](https://redis.io/commands/bzpopmin/) | | ✗ | ✗ | ✗ | ✗ | ✓ | ['6.0.0', '`timeout` is interpreted as a double instead of an integer.'] | ✓ | ✓ | ✓ |
|
||||
| | [bzpopmax](https://redis.io/commands/bzpopmax/) | | ✗ | ✗ | ✗ | ✗ | ✓ | ['6.0.0', '`timeout` is interpreted as a double instead of an integer.'] | ✓ | ✓ | ✓ |
|
||||
| | [zdiffstore](https://redis.io/commands/zdiffstore/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
|
||||
| | [zinterstore](https://redis.io/commands/zinterstore/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [zunionstore](https://redis.io/commands/zunionstore/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [zrangestore](https://redis.io/commands/zrangestore/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
|
||||
| | [zdiff](https://redis.io/commands/zdiff/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
|
||||
| | [zinter](https://redis.io/commands/zinter/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
|
||||
| | [zunion](https://redis.io/commands/zunion/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
|
||||
| | [zrange](https://redis.io/commands/zrange/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ['6.2.0', 'Added the `REV`, `BYSCORE`, `BYLEX` and `LIMIT` options.'] | ✓ | ✓ |
|
||||
| | [zrevrange](https://redis.io/commands/zrevrange/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
|
||||
| **group** | **command** | | **Version 1.0** | **Version 2.8** | **Version 3.2** | **Version 4.0** | **Version 5.0** | **Version 6.0** | **Version 6.2** | **Version 7.0** | **Version 7.2** |
|
||||
|-----------|-------------------------------------------------------------------------|---|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------------------------------------------|------------------------------------------------------|-----------------|
|
||||
| **geo** | [geoadd](https://redis.io/commands/geoadd/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ['6.2.0', 'Added the `CH`, `NX` and `XX` options.'] | ✓ | ✓ |
|
||||
| | [geohash](https://redis.io/commands/geohash/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [geodist](https://redis.io/commands/geodist/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [geopos](https://redis.io/commands/geopos/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [georadius](https://redis.io/commands/georadius/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ['6.2.0', 'Added the `ANY` option for `COUNT`.'] | ['7.0.0', 'Added support for uppercase unit names.'] | ✓ |
|
||||
| | [georadius_ro](https://redis.io/commands/georadius_ro/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ['6.2.0', 'Added the `ANY` option for `COUNT`.'] | ✓ | ✓ |
|
||||
| | [georadiusbymember](https://redis.io/commands/georadiusbymember/) | | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ['7.0.0', 'Added support for uppercase unit names.'] | ✓ |
|
||||
| | [georadiusbymember_ro](https://redis.io/commands/georadiusbymember_ro/) | | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [geosearch](https://redis.io/commands/geosearch/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ['7.0.0', 'Added support for uppercase unit names.'] | ✓ |
|
||||
| | [geosearchstore](https://redis.io/commands/geosearchstore/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ['7.0.0', 'Added support for uppercase unit names.'] | ✓ |
|
||||
|
||||
| **group** | **command** | | **Version 1.0** | **Version 2.8** | **Version 3.2** | **Version 4.0** | **Version 5.0** | **Version 6.0** | **Version 6.2** | **Version 7.0** | **Version 7.2** |
|
||||
|------------|-----------------------------------------------------|--------------------------------------------------------------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------------------------------|-----------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|
|
||||
| **stream** | [xadd](https://redis.io/commands/xadd/) | | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ['6.2.0', 'Added the `NOMKSTREAM` option, `MINID` trimming strategy and the `LIMIT` option.'] | ['7.0.0', 'Added support for the `<ms>-*` explicit ID form.'] | ✓ |
|
||||
| | [xdel](https://redis.io/commands/xdel/) | | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [xack](https://redis.io/commands/xack/) | | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [xclaim](https://redis.io/commands/xclaim/) | | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [xlen](https://redis.io/commands/xlen/) | | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [xtrim](https://redis.io/commands/xtrim/) | | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ['6.2.0', 'Added the `MINID` trimming strategy and the `LIMIT` option.'] | ✓ | ✓ |
|
||||
| | [xread](https://redis.io/commands/xread/) | | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [xreadgroup](https://redis.io/commands/xreadgroup/) | | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [xrange](https://redis.io/commands/xrange/) | | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ['6.2.0', 'Added exclusive ranges.'] | ✓ | ✓ |
|
||||
| | [xrevrange](https://redis.io/commands/xrevrange/) | | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ['6.2.0', 'Added exclusive ranges.'] | ✓ | ✓ |
|
||||
| | [xsetid](https://redis.io/commands/xsetid/) | | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ['7.0.0', 'Added the `entries_added` and `max_deleted_entry_id` arguments.'] | ✓ |
|
||||
| | [xpending](https://redis.io/commands/xpending/) | | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ['6.2.0', 'Added the `IDLE` option and exclusive range intervals.'] | ✓ | ✓ |
|
||||
| | [xautoclaim](https://redis.io/commands/xautoclaim/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ['7.0.0', 'Added an element to the reply array, containing deleted entries the command cleared from the PEL'] | ✓ |
|
||||
| | xgroup | [createconsumer](https://redis.io/commands/xgroup-createconsumer/) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
|
||||
| | | [delconsumer](https://redis.io/commands/xgroup-delconsumer/) | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | | [create](https://redis.io/commands/xgroup-create/) | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ['7.0.0', 'Added the `entries_read` named argument.'] | ✓ |
|
||||
| | | [destroy](https://redis.io/commands/xgroup-destroy/) | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | | [setid](https://redis.io/commands/xgroup-setid/) | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ['7.0.0', 'Added the optional `entries_read` argument.'] | ✓ |
|
||||
| | xinfo | [groups](https://redis.io/commands/xinfo-groups/) | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ['7.0.0', 'Added the `entries-read` and `lag` fields'] | ✓ |
|
||||
| | | [consumers](https://redis.io/commands/xinfo-consumers/) | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ['7.2.0', 'Added the `inactive` field.'] |
|
||||
| | | [stream](https://redis.io/commands/xinfo-stream/) | ✗ | ✗ | ✗ | ✗ | ✓ | ['6.0.0', 'Added the `FULL` modifier.'] | ✓ | ['7.0.0', 'Added the `max-deleted-entry-id`, `entries-added`, `recorded-first-entry-id`, `entries-read` and `lag` fields'] | ['7.2.0', 'Added the `active-time` field, and changed the meaning of `seen-time`.'] |
|
||||
|
||||
|
||||
| **group** | **command** | | **Version 1.0** | **Version 2.8** | **Version 3.2** | **Version 4.0** | **Version 5.0** | **Version 6.0** | **Version 6.2** | **Version 7.0** | **Version 7.2** |
|
||||
|-----------|-----------------------------------------------------|--------------------------------------------------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|--------------------------------------------------------------------|-----------------|-----------------|
|
||||
| scripting | [eval](https://redis.io/commands/eval/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [evalsha](https://redis.io/commands/evalsha/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [eval_ro](https://redis.io/commands/eval_ro/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | [evalsha_ro](https://redis.io/commands/evalsha_ro/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | script | [load](https://redis.io/commands/script-load/) | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | | [exists](https://redis.io/commands/script-exists/) | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | | [flush](https://redis.io/commands/script-flush/) | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ['6.2.0', 'Added the `ASYNC` and `SYNC` flushing mode modifiers.'] | ✓ | ✓ |
|
||||
| | | [debug](https://redis.io/commands/script-debug/) | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [fcall](https://redis.io/commands/fcall/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | [fcall_ro](https://redis.io/commands/fcall_ro/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | function | [stats](https://redis.io/commands/function-stats/) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | | [list](https://redis.io/commands/function-list/) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | | [dump](https://redis.io/commands/function-dump/) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | | [restore](https://redis.io/commands/function-restore/) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | | [flush](https://redis.io/commands/function-flush/) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | | [delete](https://redis.io/commands/function-delete/) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
|
||||
| **group** | **command** | | **Version 1.0** | **Version 2.8** | **Version 3.2** | **Version 4.0** | **Version 5.0** | **Version 6.0** | **Version 6.2** | **Version 7.0** | **Version 7.2** |
|
||||
|------------|:-------------------------------------------------------:|------------------------------------------------------------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|--------------------------------------------------------------|-----------------|-----------------|
|
||||
| **pubsub** | [publish](https://redis.io/commands/publish/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [subscribe](https://redis.io/commands/subscribe/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ['6.2.0', '`RESET` can be called to exit subscribed state.'] | ✓ | ✓ |
|
||||
| | [unsubscribe](https://redis.io/commands/unsubscribe/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | [punsubscribe](https://redis.io/commands/punsubscribe/) | | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ['6.2.0', '`RESET` can be called to exit subscribed state.'] | ✓ | ✓ |
|
||||
| | [spublish](https://redis.io/commands/spublish/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | [ssubscribe](https://redis.io/commands/ssubscribe/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | [sunsubscribe](https://redis.io/commands/sunsubscribe/) | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | pubsub | [numsub](https://redis.io/commands/pubsub-numsub/) | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | | [numpat](https://redis.io/commands/pubsub-numpat/) | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | | [channels](https://redis.io/commands/pubsub-channels/) | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| | | [shardnumsub](https://redis.io/commands/pubsub-shardnumsub/) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
||||
| | | [shardchannels](https://redis.io/commands/pubsub-shardchannels/) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
|
Loading…
Reference in New Issue