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).

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