キーバリューストア

TTLサポート付きの高速キーバリューストレージ。キャッシュ、セッション、一時的な状態に最適。

ストア設定についてはストアを参照。

ロード

local store = require("store")

ストアの取得

レジストリ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()
パラメータ 説明
id string ストアリソースID

戻り値: Store, error

値の保存

オプションのTTL付きで値を保存:

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

-- シンプルなset
cache:set("user:123:name", "Alice")

-- TTL付きでset(300秒で期限切れ)
cache:set("session:abc", {user_id = 123, role = "admin"}, 300)
パラメータ 説明
key string キー
value any 値(テーブル、文字列、数値、ブール値)
ttl number TTL(秒)(オプション、0 = 期限なし)

戻り値: boolean, error

値の取得

キーで値を取得:

local user = cache:get("user:123")
if not user then
    -- キーが見つからないか期限切れ
end
パラメータ 説明
key string 取得するキー

戻り値: any, error

キーが存在しない場合はnilを返す。

存在確認

取得せずにキーが存在するか確認:

if cache:has("lock:" .. resource_id) then
    return nil, errors.new("CONFLICT", "Resource is locked")
end
パラメータ 説明
key string 確認するキー

戻り値: boolean, error

キーの削除

ストアからキーを削除:

cache:delete("session:" .. session_id)
パラメータ 説明
key string 削除するキー

戻り値: boolean, error

削除された場合はtrue、キーが存在しなかった場合はfalseを返す。

ストアメソッド

メソッド 戻り値 説明
get(key) any, error キーで値を取得
set(key, value, ttl?) boolean, error オプションのTTL付きで値を保存
has(key) boolean, error キーが存在するか確認
delete(key) boolean, error キーを削除
release() boolean ストアをプールに戻す

権限

ストア操作はセキュリティポリシー評価の対象。

アクション リソース 属性 説明
store.get Store ID - ストアリソースを取得
store.key.get Store ID key キー値を読み取り
store.key.set Store ID key キー値を書き込み
store.key.delete Store ID key キーを削除
store.key.has Store ID key キーの存在を確認

エラー

条件 種別 再試行可能
リソースIDが空 errors.INVALID no
リソースが見つからない errors.NOT_FOUND no
ストアが解放済み errors.INVALID no
権限拒否 errors.PERMISSION_DENIED no

エラーの処理についてはエラー処理を参照。