云数据库 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