支持的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执行。