레디스에서 키를 관리하는 법
키의 자동 생성과 삭제
- 키가 존재하지 않을 때 아이템을 넣으면 아이템 삽입 전에 빈 자료 구조를 생성한다.
- 저장하고자 하는 키에 다른 자료 구조가 이미 생성돼 있으면 에러를 반환한다.
- 모든 아이템을 삭제하면 키도 자동으로 삭제된다.
- 키가 없는 상태에서 키 삭제, 아이템 삭제, 크기 조회 같은 읽기 커맨드를 수행하면 에러 대신 아이템이 없는 것처럼 동작한다.
키와 관련된 커맨드
EXISTS
EXISTS {키 이름}
- 키가 존재하면 1을, 없으면 0을 반환
KEYS
SCAN
KEYS
를 대체해 키를 조회할 수 있는 커맨드
- 커서 기반으로 특정 범위 키만 조회할 수 있기 때문에 안전하다.
SORT
- 키 내부 아이템을 정렬해 반환
list
, set
, sorted set
에서만 사용 가능
RENAME
/RENAMENX
- 키의 이름을 변경하는 커맨드
NX
가 붙은 건 변경할 키가 존재하지 않을 때만 동작
COPY
COPY source destination
- source에 저장된 키를 destination 키에 복사
- destination에 키가 이미 있으면 에러 반환
REPLACE
옵션을 사용하면 키를 삭제하고 복사해서 에러가 발생하지 않음
TYPE
OBJECT
- 키에 대한 상세 정보 반환
- 키의 저장 형태, 키가 호출되지 않은 시간 등
FLUSHALL
DEL
UNLINK
DEL
과 비슷한 키 삭제 커맨드지만 백그라운드에서 다른 스레드에 의해 처리된다.
- 하나의 키에 여러 아이템이 저장되는 자료 구조의 경우
DEL
방식은 성능에 악영향을 미칠 수 있다.
EXPIRE
- 키가 만료될 시간을 초 단위로 정의할 수 있다.
EXPIREAT
- 키가 특정 유닉스 타임스탬프에 만료될 수 있도록 키 만료 시간을 직접 지정한다.
EXPIRETIME
- 키가 삭제되는 유닉스 타임스탬프를 초 단위로 반환한다.
TTL