Memcached

Saiba mais sobre o componente e como utilizá-lo.

O componente Memcached permite que você realize operações em servidores Memcached.

Memcached é um sistema de código aberto para armazenamento em cache de memória distribuída, que usa um modelo chave-valor na memória para armazenamento de dados. Para mais informações, veja o site oficial.

Parâmetros

Dê uma olhada nos parâmetros de configuração do componente. Parâmetros suportados por expressões Double Braces estão marcados com (DB).

Parâmetro
Descrição
Valor padrão
Tipo de dado

Account

Conta a ser usada para autenticação nos servidores. Contas suportadas: Basic.

N/A

String

Operation

Operação a ser executada.

As operações são: Get One, Get Many, Add, Set, Delete, Replace, Append, Prepend, Touch, Get And Touch e CAS (Check And Set).

Get One

String

Addresses (DB)

Host e port (HOST:PORT) dos servidores aos quais se conectar. Endereços múltiplos podem ser configurados como HOST1:PORT1, HOSTn:PORTn.

N/A

String

Key (DB)

Chave a ser armazenada ou recuperada.

N/A

String

Key Set (DB)

Conjunto de chaves a serem recuperadas. Essa opção fica disponível somente quando a operação Get Many é usada e espera uma matriz de strings contendo as chaves.

N/A

Matriz de strings

Expiration

Tempo (em segundos) que o dado deve ser mantido na base de dados antes de expirar. Se configurado com 0, o dado não vai expirar.

N/A

Inteiro

Value (DB)

Valor a ser armazenado.

N/A

String

Connect Timeout

Tempo máximo (em milissegundos) para conectar aos servidores Memcached.

30000

Inteiro

Operation Timeout

Tempo máximo (em milissegundos) para executar a operação Memcached.

30000

Inteiro

Advanced Settings

Se a opção estiver ativada, você pode acessar as seguintes configurações:

False

Booleano

- Raw Mode

Quando ativada, irá considerar Value como dados brutos (não JSON) e irá armazená-los como estão. O conteúdo recuperado também será mostrado como uma string com um resultado bruto.

False

Booleano

- Is Binary Result

Se ativada, irá tratar o resultado como um conteúdo binário e irá mostrar a saída como uma string Base64.

False

Booleano

- Pool Size By Actual Consumers

Se ativada, o número de pooled connections será equivalente ao número de consumers configurados durante a implantação do pipeline. Se desativada, então o tamanho do pool é dado pelo tamanho da implantação do pipeline, independente do número de consumers.

False

Booleano

Fail On Error

Se a opção estiver ativada, a execução do pipeline com erro será interrompida. Do contrário, a execução do pipeline continua, mas o resultado irá mostrar um valor falso para a propriedade “success”.

False

Booleano

Importante: ao usar vários servidores, a mesma credencial Basic deve ser usada em todos os servidores.

Exemplos de uso

Operações de recuperação

Get One

Recupera apenas 1 registro do servidor através da sua chave.

  • Account: <basic-account>

  • Addresses: localhost:11211

  • Operation: Get One

  • Key: id_A

Saída:

{
    "total": 1,
    "data": [
        {
        	"key": "id_A",
        	"value": <value>
        }
    ]
}

Get Many

Recupera qualquer número de registros do servidor através de um conjunto de chaves.

  • Account: <basic-account>

  • Address: localhost:11211

  • Operation: Get Many

  • Key Set:

[
	"id_A",
	"id_B",
	"id_C",
	"id_D"
]

Saída:

{
    "total": 4,
    "data": [
        {
        	"key": "id_A",
        	"value": <value>
        },
        {
        	"key": "id_B",
        	"value": <value>
        },
        {
        	"key": "id_C",
        	"value": <value>
        },
        {
        	"key": "id_D",
        	"value": <value>
        }
    ]
}

Importante: ao recuperar dados de um servidor Memcached, o componente pode manipular somente objetos serializáveis Java e sempre irá tentar gerá-los em formato JSON ou na sua representação de string. Caso o valor recuperado não possa ser analisado nesses formatos, uma exceção (Exception) pode ser lançada.

Operações de armazenamento

Add

Armazena um registro no servidor pela sua chave, tempo de expiração e valor, somente se ele ainda não existir.

  • Account: <basic-account>

  • Addresses: localhost:11211

  • Operation: Add

  • Key: id_A

  • Expiration: 3600

  • Value:

{
    "code": "A",
    "name": "John",
    "address": {
    	"street": "John's Street"
    },
    "number": [
    	"+5511999999999"
    ]
}

Saída:

{
    "success": true,   //false, se a chave já existir
    "command": "add"
}

Set

Armazena um registro no servidor pela sua chave, expiração e valor, substituindo-o caso já exista.

  • Account: <basic-account>

  • Addresses: localhost:11211

  • Operation: Set

  • Key: id_A

  • Expiration: 3600

  • Value:

{
    "code": "A",
    "name": "John",
    "address": {
    	"street": "John's Street"
    },
    "number": [
    	"+5511999999999"
    ]
}

Saída:

{
    "success": true,
    "command": "set"
}

Replace

Substitui o valor de um registro por sua chave, tempo de expiração e o novo valor, somente se o registro já existir.

  • Account: <basic-account>

  • Addresses: localhost:11211

  • Operation: Replace

  • Key: id_A

  • Expiration: 3600

  • Value:

{
    "code": "A",
    "name": "John",
    "address": {
    	"street": "John's Street"
    },
    "number": [
    	"+5511999999999"
    ]
}

Saída:

{
    "success": true,   //false, se a chave não existir
    "command": "replace"
}

Append

Acrescenta um novo valor ao final do valor existente de um registro através da sua chave e valor a ser acrescentado, somente se o registro já existir. Requer a ativação do parâmetro Raw Mode.

  • Account: <basic-account>

  • Addresses: localhost:11211

  • Operation: Append

  • Key: id_A

  • Expiration: 3600

  • Raw Mode: enabled

  • Value:

" - valor a ser acrescentado pelo append"

Saída:

{
    "success": true,   //false, se a chave não existir
    "command": "append"
}

Importante: uma vez que a operação Append acrescenta novos dados aos existentes sem recuperá-los, não é possível simplesmente fazer o append de estruturas de dados complexos, como objetos JSON. Portanto, os dados existentes também devem ter sido armazenados como dados brutos, e o parâmetro Raw Mode deve ser ativado para essa operação.

Prepend

Acrescenta um novo valor ao início do valor existente de um registro através da sua chave e valor a ser acrescentado, somente se o registro já existir. Requer a ativação do parâmetro Raw Mode.

  • Account: <basic-account>

  • Addresses: localhost:11211

  • Operation: Prepend

  • Key: id_A

  • Expiration: 3600

  • Raw Mode: enabled

  • Value:

"valor a ser acrescentado pelo prepend - "

Saída:

{
    "success": true,   //false, se a chave não existir
    "command": "prepend"
}

Importante: uma vez que a operação Prepend acrescenta novos dados aos existentes sem recuperá-los, não é possível simplesmente fazer o prepend de estruturas de dados complexos, como objetos JSON. Portanto, os dados existentes também devem ter sido armazenados como dados brutos, e o parâmetro Raw Mode deve ser ativado para essa operação.

CAS (Check And Set)

Atualiza o valor de um registro pelo sua chave, tempo de expiração e novo valor, somente se o registro já existir e se não tiver sido modificado durante a recuperação do registro. Essa operação é útil em ambientes com condiçoes de corrida (race conditions) na atualização dos dados de cache.

  • Account: <basic-account>

  • Addresses: localhost:11211

  • Operation: CAS (Check And Set)

  • Key: id_A

  • Expiration: 3600

  • Value:

{
    "code": "A",
    "name": "John",
    "address": {
    	"street": "John's Street"
    },
    "number": [
    	"+5511999999999"
    ]
}

Saída:

{
    "success": true,   //false, se a chave não existir
    "command": "cas"
}

Operações de remoção

Delete

Remove um registro do servidor através da sua chave.

  • Account: <basic-account>

  • Addresses: localhost:11211

  • Operation: Delete

  • Key: id_A

Saída:

{
    "success": true,    //false, se a chave não existir
    "command": "delete"
}

Operações de toque

Touch

Atualiza a expiração de um registro através da sua chave e um novo valor de expiração.

  • Account: <basic-account>

  • Addresses: localhost:11211

  • Operation: Touch

  • Key: id_A

  • Expiration: 3600

Saída:

{
    "success": true,    //false, se a chave não existir
    "command": "touch"
}

Get And Touch

Recupera apenas 1 registro do servidor através da sua chave enquanto atualiza seu valor de expiração.

  • Account: <basic-account>

  • Addresses: localhost:11211

  • Operation: Get And Touch

  • Key: id_A

  • Expiration: 3600

Saída:

{
    "total": 1,
    "data": [
        {
        	"key": "id_A",
        	"value": <value>
        }
    ]
}

Importante: ao recuperar dados de um servidor Memcached, o componente pode manipular somente objetos serializáveis Java e sempre irá tentar gerá-los em formato JSON ou na sua representação de string. Caso o valor recuperado não possa ser analisado nesses formatos, uma exceção (Exception) pode ser lançada.

Atualizado