1.2.0 • Published 4 years ago

@moblybr/memcached-client v1.2.0

Weekly downloads
9
License
ISC
Repository
bitbucket
Last release
4 years ago

@mobly/packages/memcached

Este pacote serve para fazer a conexão com o memcache, adicionar dados no cache e recupera-los.

Modo de usar

Adicione a seu projeto através do comando:

npm i @moblybr/memcached-client

Com isso, você pode usá-lo da seguinte forma:

  • Uso básico:

O pacote procura nas variáveis de ambiente pela variável MEMCACHED_URI e atribui ao config do memcached.

O pacote pode receber mais de uma URI, nesse caso, é so passar um array de URI's.

Importando o pacote e configurando

Você possui três formas:

Importando o modulo via import. Se instancia o modulo em uma variável, depois com o método config é passada as configurações do client.

// myModule.js

import moblyMemcache from '@moblybr/memcached-client'
let client = moblyMemcache()

client.config({
  connection: {
    hosts: process.env.MEMCACHED_URI
  },
  cacheEnabled: !!+process.env.CACHE_ENABLED, // true or false
  autodiscover: !!+process.env.IS_ELASTICACHE, // true or false
  muteErros: true
})

Importando via require pode se usar o auto invoke.

// myModule.js

const client = require('@moblybr/memcached-client')()

client.config({
  connection: {
    hosts: process.env.MEMCACHED_URI
  },
  cacheEnabled: !!+process.env.CACHE_ENABLED, // true or false
  autodiscover: !!+process.env.IS_ELASTICACHE, // true or false
  muteErros: true
})

Semelhante ao exemplo a cima, também é possivél importar via require e no auto invoke passar as configuração do modulo.

// myModule.js

const moblyMemcache = require('@moblybr/memcached-client')({
  connection: {
    hosts: process.env.MEMCACHED_URI
  },
  cacheEnabled: !!+process.env.CACHE_ENABLED, // true or false
  autodiscover: !!+process.env.IS_ELASTICACHE, // true or false
  muteErros: true
})

Você terá os métodos:

// myModule.js

const moblyMemcache = require('@moblybr/memcached-client')({
  connection: {
    hosts: process.env.MEMCACHED_URI
  },
  cacheEnabled: !!+process.env.CACHE_ENABLED, // true or false
  autodiscover: !!+process.env.IS_ELASTICACHE, // true or false
  muteErros: true
})

const userCached = await client.get(key)
// retorna {
//   id: 123,
//   user: ...
// }

await client.set(key, value, ttl)
// retorna OK
  • get(key) - get do dado salvo
  • set(key, value, ttl = 0 / default, nunca expira do cache/) - salva um dado novo
  • config({}) - seta a configuração
  • getConfig() - retorna a configuração
  • connect() - conecta
  • disconnect() - desconecta

Uso configurando a URI

Você pode configurar o endereço da sua instância Memcache setando a variável de ambiente MEMCACHED_URI.

Instanciando mais de um client

Você pode instanciar varios clients de acordo com a demanda da aplicação

// myModule.js

const moblyMemcache = require('@moblybr/memcached-client')({
  connection: {
    hosts: process.env.MEMCACHED_URI // primeira_URI
  },
  cacheEnabled: !!+process.env.CACHE_ENABLED, // true or false
  autodiscover: !!+process.env.IS_ELASTICACHE, // true or false
  muteErros: true
})

const moblyMemcache2 = require('@moblybr/memcached-client')({
  connection: {
    hosts: process.env.SECOND_MEMCACHED_URI // segunda_URI
  },
  cacheEnabled: !!+process.env.CACHE_ENABLED, // true or false
  autodiscover: !!+process.env.IS_ELASTICACHE, // true or false
  muteErros: true
})

const config = moblyMemcache.getConfig()
// retorna
// {
//   connection: {
//     hosts: primeira_URI
//   },
//   cacheEnabled: true
//   autodiscover: false
//   muteErros: true
// }

const config2 = moblyMemcache2.getConfig()
// retorna
// {
//   connection: {
//     hosts: segunda_URI
//   },
//   cacheEnabled: false
//   autodiscover: true
//   muteErros: true
// }

Retornando um cliente Memcache-Plus

Caso seja necessário usar mais features que não estão acima, você pode ter uma instância do Memcache-Plus utilizando a função getClient.

Ex.

const plusClient = await moblyMemcache.getClient(key)
console.log(plusClient instanceof MemcachePlus)
// retorna true
1.2.0

4 years ago

1.1.0

4 years ago

1.0.0

4 years ago