키-값 스토어

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")

-- 단순 설정
cache:set("user:123:name", "Alice")

-- TTL과 함께 설정 (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 스토어 ID - 스토어 리소스 획득
store.key.get 스토어 ID key 키 값 읽기
store.key.set 스토어 ID key 키 값 쓰기
store.key.delete 스토어 ID key 키 삭제
store.key.has 스토어 ID key 키 존재 확인

에러

조건 종류 재시도 가능
빈 리소스 ID errors.INVALID 아니오
리소스를 찾을 수 없음 errors.NOT_FOUND 아니오
스토어 해제됨 errors.INVALID 아니오
권한 거부됨 errors.PERMISSION_DENIED 아니오

에러 처리는 에러 처리를 참조하세요.