Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Enfileira um comando na fila de comandos para serem processados pelo servidor Redis.

Sintaxe

Bloco de código
oRedisAfter := oRedisClient:Append(cCommand [ , cParameter ])

Parâmetros

NomeTipoDescriçãoObrigatórioReferênciaObservações
cCommand
Caracter

Comando a ser enfileirado

X
Pode conter ? que será preenchida por parâmetro
cParameter
CaracterComplemento do comandoSubstituirá a interrogação (ou ?) eventual no comando.

Retorno

NomeTipoDescriçãoObservações
oRedisAfter
objeto tRedisClientCó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 ::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 – String de comando constante
Toggle Cloak
exclusivetrue

Cloak
cpp

Nesta listagem, as chamadas a VarInfo() permitem conhecer o estado das propriedades do objeto oRedisClientdepois 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 há uma resposta do servidor Redis a ser recebida 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 campo x.

Exemplo 2 – String de comando parametrizada
Toggle Cloak
exclusivetrue

Cloak
cpptrue