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.