Store (Clave-Valor)
Almacenes clave-valor en memoria y respaldados por SQL con soporte TTL.
Tipos de Entrada
| Tipo | Descripción |
|---|---|
store.memory |
Almacén en memoria con limpieza automática |
store.sql |
Almacén respaldado por SQL con persistencia |
Almacén en Memoria
- name: sessions
kind: store.memory
max_size: 10000
cleanup_interval: "5m"
lifecycle:
auto_start: true
| Campo | Tipo | Por Defecto | Descripción |
|---|---|---|---|
max_size |
int | 10000 | Entradas máximas (0 = ilimitado) |
cleanup_interval |
duration | 5m | Intervalo de limpieza de entradas expiradas |
Cuando se alcanza max_size, se rechazan nuevas entradas. Los datos se pierden al reiniciar.
Almacén SQL
- name: cache
kind: store.sql
database: app:postgres
table_name: kv_store
cleanup_interval: "10m"
lifecycle:
auto_start: true
| Campo | Tipo | Por Defecto | Descripción |
|---|---|---|---|
database |
referencia | requerido | Referencia de entrada de base de datos |
table_name |
string | requerido | Nombre de tabla para almacenamiento |
id_column_name |
string | key | Columna para claves |
payload_column_name |
string | value | Columna para valores |
expire_column_name |
string | expires_at | Columna para expiración |
cleanup_interval |
duration | 0 | Intervalo de limpieza de entradas expiradas |
Los nombres de columna se validan contra inyección SQL. Cree la tabla antes de usar:
CREATE TABLE kv_store (
key VARCHAR(255) PRIMARY KEY,
value BYTEA NOT NULL,
expires_at BIGINT
);
CREATE INDEX idx_expires_at ON kv_store(expires_at) WHERE expires_at IS NOT NULL;
Comportamiento TTL
Ambos almacenes soportan tiempo de vida. Las entradas expiradas persisten brevemente hasta que la limpieza se ejecuta en cleanup_interval. Establezca a 0 para deshabilitar la limpieza automática.
API Lua
Consulte el Módulo Store para operaciones (get, set, delete, exists, clear).