Predixy支持的Redis命令

Fortrue March 1, 2023

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

comments powered by Disqus