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

Sintaxe

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 comando

Substituirá 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

#include 'protheus.ch'
 
User Function ApndTstC()
  oRedisCli:= tRedisClient():New()

  // Setup Redis connection
  oRedisCli:Connect("localhost", 6379, "")

  If oRedisClient:lConnected
    // Set the field 'x' to the value 'aaa'
    retVal := oRedisCli:Append('set x "aaa"'):GetReply()

    VarInfo("Result of ::Append()", retVal)

    oRdClient:Disconnect()
    Return .T.
  EndIf 

Return .F.

Exemplo 2 – String de comando parametrizada

#include 'protheus.ch'
 
User Function ApndTstV()
  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.