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âmetroDescriçãoValor padrãoTipo 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