云数据库 Redis 版兼容 Redis 3.0 版本,支持 Redis 3.0 的 Geo 命令。目前还有小部分暂未开放的命令和受限制的命令。
支持的命令操作
| Keys(键) | String(字符串) | Hash(哈希表) | List(列表) | Set(集合) | SortedSet(有序集合) |
|---|---|---|---|---|---|
| DEL | APPEND | HDEL | BLPOP | SADD | ZADD |
| DUMP | BITCOUNT | HEXISTS | BRPOP | SCARD | ZCARD |
| EXISTS | BITOP | HGET | BRPOPLPUSH | SDIFF | ZCOUNT |
| EXPIRE | BITPOS | HGETALL | LINDEX | SDIFFSTORE | ZINCRBY |
| EXPIREAT | DECR | HINCRBY | LINSERT | SINTER | ZRANGE |
| MOVE | DECRBY | HINCRBYFLOAT | LLEN | SINTERSTORE | ZRANGEBYSCORE |
| PERSIST | GET | HKEYS | LPOP | SISMEMBER | ZRANK |
| PEXPIRE | GETBIT | HLEN | LPUSH | SMEMBERS | ZREM |
| PEXPTREAT | GETRANGE | HMGET | LPUSHX | SMOVE | ZREMRANGEBYRANK |
| PTTL | GETSET | HMSET | LRANGE | SPOP | ZREMRANGEBYSCORE |
| RANDOMKEY | INCR | HSET | LREM | SRANDMEMBER | ZREVRANGE |
| RENAME | INCRBY | HSETNX | LSET | SREM | ZREVRANGEBYSCORE |
| RENAMENX | INCRBYFLOAT | HVALS | LTRIM | SUNION | ZREVRANK |
| RESTORE | MGET | HSCAN | RPOP | SUNIONSTORE | ZSCORE |
| SORT | MSET | RPOPLPUSH | SSCAN | ZUNIONSTORE | |
| TTL | MSETNX | RPUSH | ZINTERSTORE | ||
| TYPE | PSETEX | RPUSHX | ZSCAN | ||
| SCAN | SET | ZRANGEBYLEX | |||
| OBJECT | SETBIT | ZLEXCOUNT | |||
| SETEX | ZREMRANGEBYLEX | ||||
| SETNX | |||||
| SETRANGE | |||||
| STRLEN |
以及
| HyperLogLog | Pub/Sub(发布/订阅) | Transaction(事务) | Connection(连接) | Server(服务器) | Scripting(脚本) | Geo(地理位置) |
|---|---|---|---|---|---|---|
| PFADD | PSUBSCRIBE | DISCARD | AUTH | FLUSHALL | EVAL | GEOADD |
| PFCOUNT | PUBLISH | EXEC | ECHO | FLUSHDB | EVALSHA | GEOHASH |
| PFMERGE | PUBSUB | MULTI | PING | DBSIZE | SCRIPT EXISTS | GEOPOS |
| PUNSUBSCRIBE | UNWATCH | QUIT | TIME | SCRIPT FLUSH | GEODIST | |
| SUBSCRIBE | WATCH | SELECT | INFO | SCRIPT KILL | GEORADIUS | |
| UNSUBSCRIBE | KEYS | SCRIPT LOAD | GEORADIUSBYMEMBER | |||
| CLIENT KILL | ||||||
| CLIENT LIST | ||||||
| CLIENT GETNAME | ||||||
| CLIENT SETNAME | ||||||
| CONFIG GET | ||||||
| MONITOR | ||||||
| SLOWLOG |
![]() |
说明 |
|
暂未开放的命令
| Keys(键) | Server(服务器) |
|---|---|
| MIGRATE | BGREWRITEAOF |
| BGSAVE | |
| CONFIG REWRITE | |
| CONFIG SET | |
| CONFIG RESETSTAT | |
| COMMAND | |
| COMMAND COUNT | |
| COMMAND GETKEYS | |
| COMMAND INFO | |
| DEBUG OBJECT | |
| DEBUG SEGFAULT | |
| LASTSAVE | |
| ROLE | |
| SAVE | |
| SHUTDOWN | |
| SLAVEOF | |
| SYNC |
集群实例受限制的命令
| Keys | Strings | Lists | HyperLogLog | Transaction | Scripting |
|---|---|---|---|---|---|
| RENAME | MSETNX | RPOPLPUSH | PFMERGE | DISCARD | EVAL |
| RENAMENX | BRPOP | PFCOUNT | EXEC | EVALSHA | |
| SORT | BLPOP | MULTI | SCRIPT EXISTS | ||
| BRPOPLPUSH | UNWATCH | SCRIPT FLUSH | |||
| WATCH | SCRIPT KILL | ||||
| SCRIPT LOAD |
![]() |
说明 |
|
Lua使用限制
Lua 脚本放开限制,标准版-双节点、标准版-单节点支持用户直接调用。
集群版本条件性支持:
- 所有key都应该由 KEYS 数组来传递,redis.call/pcall 中调用的redis命令,key的位置必须是KEYS array(不能使用Lua变量替换KEYS),否则直接返回错误信息,"
-ERR bad lua script for redis cluster, all the keys that the script uses should be passed using the KEYS array\r\n"。 - 所有key必须在1个slot上,否则返回错误信息,"
-ERR eval/evalsha command keys must be in same slot\r\n"。 - 调用必须要带有key,否则直接返回错误信息, "
-ERR for redis cluster, eval/evalsha number of keys can't be negative or zero\r\n"。
自研的集群实例命令
-
info key 命令:查询 key 所属的 slot 和 db。Redis 原生的 info 命令中最多可以带一个可选的 section (
info [section])。目前云数据库 Redis 版的集群实例,部分命令限制所有 key 必须在同一个 slot 中,info key命令方便用户查询某些 key 是否在同一个 slot 或 db 节点中。用法如下:127.0.0.1:6379> info key test_key slot:15118 node_index:0
注意 -
线上旧版本可能出现
info key显示出来的node index和实例拓扑图的node index不一致,最新版本已经修复。 -
info key显示的 node 是指集群规格下后端的物理节点,和 select 命令中的 db 不是同一个概念。
-
-
iinfo 命令:用法类似于 info,用于在指定的 Redis 节点上执行 info 命令。用法如下:
iinfo db_idx [section]其中,db_idx 的范围是[0, nodecount],nodecount 可以通过 info 命令获取,section 为 info 官方一致的值。要了解某个 Redis 节点的 info 可以使用 iinfo 命令或者从控制台上查看实例拓扑图,详情请参见 如何查看 Redis 集群子实例内存。
-
riinfo 命令:和 iinfo 命令类似,但只能在读写分离的模式下使用。用法中增加了一个 readonly slave 的 idx,用于指定在第几个 readonly slave 上执行 info 命令。在读写分离集群中可以用来在指定 readonly slave 上执行 info 命令。如果在非读写分离集群中使用,会返回错误。用法如下:
riinfo db_idx ro_slave_idx [section] -
iscan 命令:在集群模式下可以在指定的 db 节点上执行 scan 命令。在 scan 命令的基础上扩展了一个参数用于指定 db_idx, db_idx 的范围是[0, nodecount],nodecount 可以通过 info 命令获取或者从控制台上查看实例拓扑图。用法如下:
iscan db_idx cursor [MATCH pattern] [COUNT count] -
imonitor 命令:和 iinfo, iscan 类似,在 monitor 的基础上新增一个参数指定 monitor 执行的 db_idx,db_idx 的范围是[0, nodecount), nodecount 可以通过 info 命令获取或者从控制台上查看实例拓扑图。用法如下:
imonitor db_idx -
rimonitor 命令:和 riinfo 类似,用于读写分离场景下,在指定的 shard 里的指定只读从库上执行 monitor 命令。用法如下:
rimonitor db_idx ro_slave_idx
