Enfileira um comando na fila de comandos para serem processados pelo servidor Redis.
Sintaxe
oRedisAfter := oRedisClient:Append(cCommand)
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência | Observações |
---|---|---|---|---|---|
cCommand | Caracter | Comando a ser enfileirado | X | Pode conter ? que será preenchida por parâmetro |
Retorno
Nome | Tipo | Descrição | Observações |
---|---|---|---|
oRedisAfter | objeto tRedisClient | Cópia do objeto sobre o qual foi feita a chamada, alterado por ela.* |
*
Isto permite acoplar outros métodos e propriedades à chamada de ::Append()
Por exemplo, oRedisCli:
Append
(cCommand, @retVal):lOk
testará se o comando foi bem sucedido, sem a necessidade de uma consulta à parte a ::lOk
sobre o objeto oRedisClient
.
Observações
::Append()
apenas enfileira comandos para processamento pelo servidor Redis. A resposta a eles deve ser obtida por chamadas de ::GetReply()
O método ::Execute()
é muito semelhante em propósito ao método ::Append()
: ambos disparam a execução de comandos no servidor Redis.
A maior diferença é que o programa que dispare ::Append()
poderá não aguardar seu término. E só receberá o resultado do comando quando executar o método ::GetReply()
.
Isto torna ::Append()
ideal para a programação assíncrona e concorrente do servidor Redis, ao passo que ::Exec()
fica limitado à programação sequencial e síncrona.
Exemplos
Exemplo 1 – Comando set
com String de comando constante
Nesta listagem, as chamadas a VarInfo()
permitem conhecer o estado das propriedades do objeto oRedisClient
depois da chamada aos métodos, e o resultado da chamada a GetReply()
.
É interessante observar que:
- a propriedade
oRedisClient:nReplyType
é negativa depois da chamada do método::Append()
, indicando que este comando não teve uma resposta do servidor Redis a ser processada pelo cliente; - o resultado (output) da execução do comando
set x 'aaa'
, disparado por::Append()
e recebido por::GetReply()
, é.T.
, indicando que foi bem sucedida a atribuição da string'aaa'
ao campox
.