O Orca é compatível com comandos do Redis da versão 7.0 e anteriores, além dos protocolos RESP2 e RESP3. Apenas os comandos listados na tabela abaixo têm suporte; os demais não são aceitos. O Orca aceita até 16 bancos de dados (DB0 a DB15), mas não permite comandos entre bancos diferentes, como MOVE.
Compatibilidade com o protocolo Redis
| Categoria | Comando | Suporte |
|---|---|---|
| Bitmap | BITCOUNT | Suportado |
| BITOP | Suportado | |
| BITPOS | Suportado | |
| SETBIT | Suportado | |
| GETBIT | Suportado | |
| Outros comandos | Não suportado | |
| Gerenciamento de conexão | PING | Suportado |
| ECHO | Suportado | |
| HELLO | Suportado | |
| AUTH | Suportado | |
| CLIENT | Parcialmente suportado | |
| Outros comandos | Não suportado | |
| Genéricos | DEL | Suportado |
| UNLINK | Suportado | |
| EXISTS | Suportado | |
| KEYS | Suportado | |
| RENAME | Suportado | |
| RENAMENX | Suportado | |
| TYPE | Suportado | |
| EXPIRE | Suportado | |
| EXPIREAT | Suportado | |
| EXPIRETIME | Suportado | |
| PERSIST | Suportado | |
| PEXPIRE | Suportado | |
| PEXPIREAT | Suportado | |
| PEXPIRETIME | Suportado | |
| TTL | Suportado | |
| PTTL | Suportado | |
| RANDOMKEY | Suportado | |
| DUMP | Suportado | |
| RESTORE | Suportado | |
| INFO | Suportado | |
| SCAN | Suportado | |
| Outros comandos | Não suportado | |
| Índices geoespaciais | GEOADD | Suportado |
| GEODIST | Suportado | |
| GEOHASH | Suportado | |
| GEOPOS | Suportado | |
| GEORADIUS | Suportado | |
| GEORADIUS_RO | Suportado | |
| GEORADIUSBYMEMBER | Suportado | |
| GEORADIUSBYMEMBER_RO | Suportado | |
| GEOSEARCH | Suportado | |
| GEOSEARCHSTORE | Suportado | |
| Hash | HDEL | Suportado |
| HEXISTS | Suportado | |
| HGET | Suportado | |
| HGETALL | Suportado | |
| HINCRBY | Suportado | |
| HINCRBYFLOAT | Suportado | |
| HKEYS | Suportado | |
| HLEN | Suportado | |
| HMGET | Suportado | |
| HMSET | Suportado | |
| HSET | Suportado | |
| HSETNX | Suportado | |
| HRANDFIELD | Suportado | |
| HVALS | Suportado | |
| HSTRLEN | Suportado | |
| HSCAN | Suportado | |
| HEXPIRE | Suportado | |
| HEXPIREAT | Suportado | |
| HEXPIRETIME | Suportado | |
| HPERSIST | Suportado | |
| HPEXPIRE | Suportado | |
| HPEXPIREAT | Suportado | |
| HPEXPIRETIME | Suportado | |
| HTTL | Suportado | |
| HPTTL | Suportado | |
| Outros comandos | Não suportado | |
| HyperLogLog | PFADD | Suportado |
| PFCOUNT | Suportado | |
| PFMERGE | Suportado | |
| PFSELFTEST | Não suportado | |
| PFDEBUG | Não suportado | |
| Lista | LINDEX | Suportado |
| LINSERT | Suportado | |
| LLEN | Suportado | |
| LMOVE | Suportado | |
| LMPOP | Suportado | |
| LPOP | Suportado | |
| LPOS | Suportado | |
| LPUSH | Suportado | |
| LPUSHX | Suportado | |
| LRANGE | Suportado | |
| LREM | Suportado | |
| LSET | Suportado | |
| LTRIM | Suportado | |
| RPOP | Suportado | |
| RPOPLPUSH | Suportado | |
| RPUSH | Suportado | |
| RPUSHX | Suportado | |
| BLPOP | Suportado | |
| BRPOP | Suportado | |
| Outros comandos | Não suportado | |
| Pub/Sub | PSUBSCRIBE | Suportado |
| PUBLISH | Suportado | |
| PUBSUB CHANNELS | Suportado | |
| PUBSUB NUMPAT | Suportado | |
| PUBSUB NUMSUB | Suportado | |
| PUNSUBSCRIBE | Suportado | |
| SUBSCRIBE | Suportado | |
| UNSUBSCRIBE | Suportado | |
| Outros comandos | Não suportado | |
| Gerenciamento do servidor | DBSIZE | Suportado |
| FLUSHALL | Suportado | |
| FLUSHDB | Suportado | |
| Outros comandos | Não suportado | |
| Conjunto | SADD | Suportado |
| SCARD | Suportado | |
| SDIFF | Suportado | |
| SDIFFSTORE | Suportado | |
| SINTER | Suportado | |
| SINTERCARD | Suportado | |
| SINTERSTORE | Suportado | |
| SISMEMBER | Suportado | |
| SMEMBERS | Suportado | |
| SMISMEMBER | Suportado | |
| SMOVE | Suportado | |
| SREM | Suportado | |
| SUNION | Suportado | |
| SUNIONSTORE | Suportado | |
| SPOP | Suportado | |
| SRANDMEMBER | Suportado | |
| SSCAN | Suportado | |
| Outros comandos | Não suportado | |
| Conjunto ordenado | ZADD | Suportado |
| ZCARD | Suportado | |
| ZCOUNT | Suportado | |
| ZDIFF | Suportado | |
| ZDIFFSTORE | Suportado | |
| ZINCRBY | Suportado | |
| ZINTERCARD | Suportado | |
| ZINTERSTORE | Suportado | |
| ZLEXCOUNT | Suportado | |
| ZMPOP | Suportado | |
| ZMSCORE | Suportado | |
| ZPOPMAX | Suportado | |
| ZPOPMIN | Suportado | |
| ZRANGE | Suportado | |
| ZRANGEBYLEX | Suportado | |
| ZRANGEBYSCORE | Suportado | |
| ZRANGESTORE | Suportado | |
| ZRANK | Suportado | |
| ZREM | Suportado | |
| ZREMRANGEBYLEX | Suportado | |
| ZREMRANGEBYRANK | Suportado | |
| ZREMRANGEBYSCORE | Suportado | |
| ZREVRANGE | Suportado | |
| ZREVRANGEBYLEX | Suportado | |
| ZREVRANGEBYSCORE | Suportado | |
| ZREVRANK | Suportado | |
| ZSCORE | Suportado | |
| ZUNION | Suportado | |
| ZUNIONSTORE | Suportado | |
| ZRANDMEMBER | Suportado | |
| ZSCAN | Suportado | |
| Outros comandos | Não suportado | |
| String | APPEND | Suportado |
| DECR | Suportado | |
| DECRBY | Suportado | |
| GET | Suportado | |
| GETDEL | Suportado | |
| GETEX | Suportado | |
| GETRANGE | Suportado | |
| GETSET | Suportado | |
| LCS | Suportado | |
| INCR | Suportado | |
| INCRBY | Suportado | |
| INCRBYFLOAT | Suportado | |
| MGET | Suportado | |
| MSET | Suportado | |
| MSETNX | Suportado | |
| PSETEX | Suportado | |
| DEFINA | Suportado | |
| SETEX | Suportado | |
| SETNX | Suportado | |
| SETRANGE | Suportado | |
| STRLEN | Suportado | |
| SUBSTR | Suportado | |
| Stream | XADD | Suportado |
| XDEL | Suportado | |
| XLEN | Suportado | |
| XRANGE | Suportado | |
| XREAD | Suportado | |
| XREVRANGE | Suportado | |
| XSETID | Suportado | |
| XTRIM | Suportado | |
| XACK | Suportado | |
| XGROUP | Suportado | |
| XINFO | Suportado | |
| XPENDING | Suportado | |
| XREADGROUP | Suportado | |
| XAUTOCLAIM | Suportado | |
| XCLAIM | Suportado | |
| XACKDEL | Não suportado | |
| XCFGSET | Não suportado | |
| XDELEX | Não suportado | |
| XIDMPRECORD | Não suportado | |
| XNACK | Não suportado | |
| Scripting | EVAL | Suportado |
| EVAL_RO | Suportado | |
| EVALSHA | Suportado | |
| EVALSHA_RO | Suportado | |
| SCRIPT LOAD | Suportado | |
| SCRIPT EXISTS | Suportado | |
| SCRIPT KILL | Suportado | |
| SCRIPT FLUSH | Suportado |
Para obter detalhes sobre o uso de scripts Lua, consulte Lua script usage instructions.
Observações de uso
HELLO
Uso: Igual ao Redis.
Valor de retorno: Diferente. O Orca retorna apenas
servereproto.
AUTH
-
Uso: Diferente.
Redis:
AUTH [username] password— o parâmetrousernameé opcional.Orca:
AUTH username password— o parâmetrousernameé obrigatório.
Valor de retorno: Igual ao Redis.
CLIENT
Apenas os subcomandos GETNAME, SETNAME, ID, INFO, LIST e HELP têm suporte. Os demais subcomandos não são aceitos.
FLUSHALL
-
Uso: Diferente.
Redis:
FLUSHALL [ASYNC | SYNC]— o parâmetroASYNCouSYNCé opcional.Orca:
FLUSHALL— não aceita parâmetros.
Valor de retorno: Igual ao Redis.
FLUSHDB
-
Uso: Diferente.
Redis:
FLUSHDB [ASYNC | SYNC]— o parâmetroASYNCouSYNCé opcional.Orca:
FLUSHDB— não aceita parâmetros.
Valor de retorno: Igual ao Redis.
Restrição de estado Pub/Sub
Clientes no estado SUBSCRIBE podem executar apenas PING, SUBSCRIBE, PSUBSCRIBE, UNSUBSCRIBE e PUNSUBSCRIBE. Nenhum outro comando é aceito nesse estado.
ZRANGE
Uso: ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]. Ao especificar BYLEX, a ordenação segue o comportamento de ZRANGEBYLEX.
Ordenação lexicográfica em conjuntos ordenados
Os seguintes comandos utilizam ordenação lexicográfica: ZLEXCOUNT, ZRANGEBYLEX, ZREMRANGEBYLEX e ZREVRANGEBYLEX.
Essa ordenação só é válida quando todos os elementos de um conjunto ordenado possuem a mesma pontuação. Se as pontuações forem distintas, a ordem dos elementos retornados será indefinida e poderá haver inconsistências de comportamento entre Orca e Redis.
Limites de tamanho de chave
O Redis limita cada chave a 512 MB. O Orca aumenta esse limite para 4 GB.
Para garantir o melhor desempenho, utilize strings com no máximo 2.560 bytes como chaves.