Enfileira um comando na fila de comandos para serem processados pelo servidor Redis.
Sintaxe
oRedisAfter := oRedisClient:Append(cCommand [ , cParameter ])
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 | |
cParameter | Caracter | Complemento do comando | Substituirá a interrogação (ou ? ) eventual no comando. |
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
Alguns comandos admitem parâmetros adicionais. Neste caso, para facilidade de programação, pode-se ter uma string de comando fixa (ou constante), com possibilidade de substituição por variáveis nos pontos onde for inserido um ponto de interrogação, o caracter ?::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 ::Execute() aguardará seu término e receberá dele o resultado do comando.
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
#include 'protheus.ch' User Function ApndTst() oRedisCli:= tRedisClient():New() // Setup Redis connection oRedisCli:Connect("localhost", 6379, "") If oRedisClient:lConnected // Set the field 'x' to the value 'aaa' oRedisCli:Append("set x ?", "aaa") retVal := oRedisCli:GetReply() ConOut(retVal) oRdClient:Disconnect() Return .T. EndIf Return .F.