Key-Value-Speicher
Schneller Key-Value-Speicher mit TTL-Unterstützung. Ideal für Caching, Sessions und temporäre Zustände.
Für Speicherkonfiguration siehe Store.
Laden
local store = require("store")
Store abrufen
Holen Sie eine Store-Ressource anhand der Registry-ID:
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()
| Parameter | Typ | Beschreibung |
|---|---|---|
id |
string | Store-Ressourcen-ID |
Gibt zurück: Store, error
Werte speichern
Speichern Sie einen Wert mit optionaler TTL:
local cache = store.get("app:cache")
-- Einfaches Setzen
cache:set("user:123:name", "Alice")
-- Setzen mit TTL (läuft in 300 Sekunden ab)
cache:set("session:abc", {user_id = 123, role = "admin"}, 300)
| Parameter | Typ | Beschreibung |
|---|---|---|
key |
string | Schlüssel |
value |
any | Wert (Tables, Strings, Zahlen, Booleans) |
ttl |
number | TTL in Sekunden (optional, 0 = kein Ablauf) |
Gibt zurück: boolean, error
Werte abrufen
Holen Sie einen Wert anhand des Schlüssels:
local user = cache:get("user:123")
if not user then
-- Schlüssel nicht gefunden oder abgelaufen
end
| Parameter | Typ | Beschreibung |
|---|---|---|
key |
string | Abzurufender Schlüssel |
Gibt zurück: any, error
Gibt nil zurück, wenn der Schlüssel nicht existiert.
Existenz prüfen
Prüfen Sie, ob ein Schlüssel existiert, ohne ihn abzurufen:
if cache:has("lock:" .. resource_id) then
return nil, errors.new("CONFLICT", "Resource is locked")
end
| Parameter | Typ | Beschreibung |
|---|---|---|
key |
string | Zu prüfender Schlüssel |
Gibt zurück: boolean, error
Schlüssel löschen
Entfernen Sie einen Schlüssel aus dem Store:
cache:delete("session:" .. session_id)
| Parameter | Typ | Beschreibung |
|---|---|---|
key |
string | Zu löschender Schlüssel |
Gibt zurück: boolean, error
Gibt true zurück wenn gelöscht, false wenn Schlüssel nicht existierte.
Store-Methoden
| Methode | Gibt zurück | Beschreibung |
|---|---|---|
get(key) |
any, error |
Wert nach Schlüssel abrufen |
set(key, value, ttl?) |
boolean, error |
Wert mit optionaler TTL speichern |
has(key) |
boolean, error |
Prüfen ob Schlüssel existiert |
delete(key) |
boolean, error |
Schlüssel entfernen |
release() |
boolean |
Store an Pool zurückgeben |
Berechtigungen
Store-Operationen unterliegen der Sicherheitsrichtlinienauswertung.
| Aktion | Ressource | Attribute | Beschreibung |
|---|---|---|---|
store.get |
Store-ID | - | Store-Ressource abrufen |
store.key.get |
Store-ID | key |
Schlüsselwert lesen |
store.key.set |
Store-ID | key |
Schlüsselwert schreiben |
store.key.delete |
Store-ID | key |
Schlüssel löschen |
store.key.has |
Store-ID | key |
Schlüsselexistenz prüfen |
Fehler
| Bedingung | Art | Wiederholbar |
|---|---|---|
| Leere Ressourcen-ID | errors.INVALID |
nein |
| Ressource nicht gefunden | errors.NOT_FOUND |
nein |
| Store freigegeben | errors.INVALID |
nein |
| Berechtigung verweigert | errors.PERMISSION_DENIED |
nein |
Siehe Fehlerbehandlung für die Arbeit mit Fehlern.