Key-Value Store
Fast key-value storage with TTL support. Ideal for caching, sessions, and temporary state.
For store configuration, see Store.
Loading
local store = require("store")
Acquiring a Store
Get a store resource by 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 | Type | Description |
|---|---|---|
id |
string | Store resource ID |
Returns: Store, error
Storing Values
Store a value with optional TTL:
local cache = store.get("app:cache")
-- Simple set
cache:set("user:123:name", "Alice")
-- Set with TTL (expires in 300 seconds)
cache:set("session:abc", {user_id = 123, role = "admin"}, 300)
| Parameter | Type | Description |
|---|---|---|
key |
string | Key |
value |
any | Value (tables, strings, numbers, booleans) |
ttl |
number | TTL in seconds (optional, 0 = no expiry) |
Returns: boolean, error
Retrieving Values
Get a value by key:
local user = cache:get("user:123")
if not user then
-- Key not found or expired
end
| Parameter | Type | Description |
|---|---|---|
key |
string | Key to retrieve |
Returns: any, error
Returns nil if key doesn't exist.
Checking Existence
Check if a key exists without retrieving:
if cache:has("lock:" .. resource_id) then
return nil, errors.new("CONFLICT", "Resource is locked")
end
| Parameter | Type | Description |
|---|---|---|
key |
string | Key to check |
Returns: boolean, error
Deleting Keys
Remove a key from the store:
cache:delete("session:" .. session_id)
| Parameter | Type | Description |
|---|---|---|
key |
string | Key to delete |
Returns: boolean, error
Returns true if deleted, false if key didn't exist.
Store Methods
| Method | Returns | Description |
|---|---|---|
get(key) |
any, error |
Retrieve value by key |
set(key, value, ttl?) |
boolean, error |
Store value with optional TTL |
has(key) |
boolean, error |
Check if key exists |
delete(key) |
boolean, error |
Remove key |
release() |
boolean |
Release store back to pool |
Permissions
Store operations are subject to security policy evaluation.
| Action | Resource | Attributes | Description |
|---|---|---|---|
store.get |
Store ID | - | Acquire a store resource |
store.key.get |
Store ID | key |
Read a key value |
store.key.set |
Store ID | key |
Write a key value |
store.key.delete |
Store ID | key |
Delete a key |
store.key.has |
Store ID | key |
Check key existence |
Errors
| Condition | Kind | Retryable |
|---|---|---|
| Empty resource ID | errors.INVALID |
no |
| Resource not found | errors.NOT_FOUND |
no |
| Store released | errors.INVALID |
no |
| Permission denied | errors.PERMISSION_DENIED |
no |
See Error Handling for working with errors.