Key-Value Store

Armazenamento key-value rapido com suporte a TTL. Ideal para cache, sessoes e estado temporario.

Para configuração de store, veja Store.

Carregamento

local store = require("store")

Adquirindo um Store

Obter um recurso store por ID do registro:

local cache, err = store.get("app:cache")
if err then
    return nil, err
end

cache:set("user:123", {name = "Alice"}, 3600)
local user = cache:get("user:123")

cache:release()
Parâmetro Tipo Descrição
id string ID do recurso store

Retorna: Store, error

Armazenando Valores

Armazenar um valor com TTL opcional:

local cache = store.get("app:cache")

-- Set simples
cache:set("user:123:name", "Alice")

-- Set com TTL (expira em 300 segundos)
cache:set("session:abc", {user_id = 123, role = "admin"}, 300)
Parâmetro Tipo Descrição
key string Chave
value any Valor (tabelas, strings, numeros, booleans)
ttl number TTL em segundos (opcional, 0 = sem expiração)

Retorna: boolean, error

Recuperando Valores

Obter um valor por chave:

local user = cache:get("user:123")
if not user then
    -- Chave não encontrada ou expirada
end
Parâmetro Tipo Descrição
key string Chave para recuperar

Retorna: any, error

Retorna nil se chave não existe.

Verificando Existencia

Verificar se uma chave existe sem recuperar:

if cache:has("lock:" .. resource_id) then
    return nil, errors.new("CONFLICT", "Resource is locked")
end
Parâmetro Tipo Descrição
key string Chave para verificar

Retorna: boolean, error

Deletando Chaves

Remover uma chave do store:

cache:delete("session:" .. session_id)
Parâmetro Tipo Descrição
key string Chave para deletar

Retorna: boolean, error

Retorna true se deletado, false se chave não existia.

Métodos do Store

Método Retorna Descrição
get(key) any, error Recuperar valor por chave
set(key, value, ttl?) boolean, error Armazenar valor com TTL opcional
has(key) boolean, error Verificar se chave existe
delete(key) boolean, error Remover chave
release() boolean Liberar store de volta ao pool

Permissões

Operações de store estao sujeitas a avaliação de política de segurança.

Ação Recurso Atributos Descrição
store.get ID do Store - Adquirir um recurso store
store.key.get ID do Store key Ler valor de uma chave
store.key.set ID do Store key Escrever valor de uma chave
store.key.delete ID do Store key Deletar uma chave
store.key.has ID do Store key Verificar existencia de chave

Erros

Condição Tipo Retentável
ID de recurso vazio errors.INVALID não
Recurso não encontrado errors.NOT_FOUND não
Store liberado errors.INVALID não
Permissão negada errors.PERMISSION_DENIED não

Veja Error Handling para trabalhar com erros.