支持的redis命令
predixy支持绝大多数redis命令,绝大部分业务场景下可以无缝迁移。
基本命令
命令 |
说明 |
APPEND |
|
BITCOUNT |
|
BITFIELD |
|
BITOP |
|
BITPOS |
|
DECR |
|
DECRBY |
|
GET |
|
GETBIT |
|
GETRANGE |
|
GETSET |
|
INCR |
|
INCRBY |
|
INCRBYFLOAT |
|
MGET |
说明1 |
MSET |
说明1 |
MSETNX |
说明1 |
PSETEX |
|
SET |
|
SETBIT |
|
SETEX |
|
SETNX |
|
SETRANGE |
|
STRLEN |
|
key管理命令
命令 |
说明 |
DEL |
说明1 |
DUMP |
|
EXISTS |
说明1 |
EXPIRE |
|
EXPIREAT |
|
KEYS |
|
MIGRATE |
|
MOVE |
|
OBJECT |
|
PERSIST |
|
PEXPIRE |
|
PEXPIREAT |
|
PTTL |
|
RANDOMKEY |
|
RENAME |
|
RENAMENX |
|
RESTORE |
|
SCAN |
后端redis节点分片数不能超过1024个 |
SORT |
|
TOUCH |
说明1 |
TTL |
|
TYPE |
|
UNLINK |
说明1 |
WAIT |
由于WAIT命令的语义和连接相关,客户端通过代理和redis的连接和直连redis不一样,所以该命令语义已改变,因此不建议使用 |
hash命令
命令 |
说明 |
HDEL |
|
HEXISTS |
|
HGET |
|
HGETALL |
|
HINCRBY |
|
HINCRBYFLOAT |
|
HKEYS |
|
HLEN |
|
HMGET |
|
HMSET |
|
HSCAN |
|
HSET |
|
HSETNX |
|
HSTRLEN |
|
HVALS |
|
list命令
命令 |
说明 |
BLPOP |
说明4 |
BRPOP |
说明4 |
BRPOPLPUSH |
说明4 |
LINDEX |
|
LINSERT |
|
LLEN |
|
LPOP |
|
LPUSH |
|
LPUSHX |
|
LRANGE |
|
LREM |
|
LSET |
|
LTRIM |
|
RPOP |
|
RPOPLPUSH |
|
RPUSH |
|
RPUSHX |
|
set命令
命令 |
说明 |
SADD |
|
SCARD |
|
SDIFF |
|
SDIFFSTORE |
|
SINTER |
|
SINTERSTORE |
|
SISMEMBER |
|
SMEMBERS |
|
SMOVE |
|
SPOP |
|
SRANDMEMBER |
|
SREM |
|
SSCAN |
|
SUNION |
|
SUNIONSTORE |
|
zset命令
命令 |
说明 |
ZADD |
|
ZCARD |
|
ZCOUNT |
|
ZINCRBY |
|
ZINTERSTORE |
|
ZLEXCOUNT |
|
ZPOPMAX |
|
ZPOPMIN |
|
BZPOPMAX |
说明4 |
BZPOPMIN |
说明4 |
ZRANGE |
|
ZRANGEBYLEX |
|
ZRANGEBYSCORE |
|
ZRANK |
|
ZREM |
|
ZREMRANGEBYLEX |
|
ZREMRANGEBYRANK |
|
ZREMRANGEBYSCORE |
|
ZREVRANGE |
|
ZREVRANGEBYLEX |
|
ZREVRANGEBYSCORE |
|
ZREVRANK |
|
ZSCAN |
|
ZSCORE |
|
ZUNIONSTORE |
|
hyperloglog命令
命令 |
说明 |
PFADD |
|
PFCOUNT |
|
PFMERGE |
|
geo命令
命令 |
说明 |
GEOADD |
|
GEODIST |
|
GEOHASH |
|
GEOPOS |
|
GEORADIUS |
|
GEORADIUSBYMEMBER |
|
pub/sub命令
命令 |
说明 |
PSUBSCRIBE |
说明4 |
PUBLISH |
|
PUBSUB |
|
PUNSUBSCRIBE |
|
SUBSCRIBE |
说明4 |
UNSUBSCRIBE |
|
stream命令
命令 |
说明 |
XACK |
|
XADD |
|
XAUTOCLAIM |
|
XCLAIM |
|
XDEL |
|
XGROUP |
|
XINFO |
|
XLEN |
|
XPENDING |
|
XRANGE |
|
XREAD |
|
XBLOCKREAD |
说明4 |
XREADGROUP |
|
XBLOCKREADGROUP |
|
XREVRANGE |
|
XTRIM |
|
script命令
命令 |
说明 |
EVAL |
|
EVALSHA |
|
SCRIPT EXISTS |
说明2 |
SCRIPT FLUSH |
说明2 |
SCRIPT KILL |
说明2 |
SCRIPT LOAD |
说明2 |
transaction命令
命令 |
说明 |
WATCH |
|
UNWATCH |
|
MULTI |
|
EXEC |
|
DISCARD |
|
连接命令
命令 |
说明 |
AUTH |
|
CLIENT GETNAME |
|
CLIENT KILL |
只支持按客户端地址kill |
CLIENT LIST |
返回的格式和redis原生格式有所不同 |
CLIENT SETNAME |
最大name长度限制为256字节 |
ECHO |
|
PING |
|
QUIT |
|
SELECT |
|
管理命令
命令 |
说明 |
COMMAND |
|
COMMAND COUNT |
|
COMMAND GETKEYS |
|
COMMAND INFO |
|
CONFIG GET |
说明3 |
CONFIG RESETSTAT |
说明2 |
CONFIG REWRITE |
说明2 |
CONFIG SET |
说明3 |
DBSIZE |
说明3 |
FLUSHALL |
|
FLUSHDB |
|
INFO |
说明3 |
LASTSAVE |
|
LOLWUT |
|
MEMORY DOCTOR |
|
MEMORY HELP |
|
MEMORY MALLOC-STATS |
|
MEMORY PURGE |
|
MEMORY STATS |
|
MEMORY USAGE |
|
MONITOR |
|
ROLE |
|
SHUTDOWN |
|
SLOWLOG |
|
SWAPDB |
|
TIME |
|
说明
说明1
在后端redis有多个master节点的时候,predixy会自动将多key命令拆分成多个单key命令分别发送到对应的后端redis节点上。这会导致原子语义的丧失,并且如果有部分redis节点失败的话,错误信息有可能被抛弃,客户端收到的是一个成功的结果。
说明2
在后端redis有多个master节点的时候,predixy会将命令发送给所有后端redis节点,只要有其中一个节点返回错误结果,predixy就会给客户端返回错误结果。
说明3
在后端redis有多个master节点的时候,部分返回结果是多个后端redis节点信息的聚合值。如果将此命令放到lua脚本或事务中来执行则会返回原始redis节点的信息而无聚合效果。
说明4
为了尽可能的提高predixy性能,在内部实现中针对阻塞式命令、事务命令、发布订阅命令会采用独占连接,因此这些命令不能和其它命令一起pipeline执行。