set 명령어:
set 명령어는 가장 기본적인 명령 중 하나로, 키(key)에 값을(value) 할당합니다.set fkey "value"는 fkey라는 키에 "value"라는 값을 저장합니다.pexpire 명령어:
pexpire는 키의 만료 시간을 밀리초 단위로 설정합니다.pexpire fkey 10000은 fkey라는 키의 만료 시간을 10초 후로 설정합니다.pexpireat 명령어:
pexpireat 명령어는 키의 만료 시간을 특정한 유닉스 타임스탬프로 설정합니다.pexpireat fkey 16650050은 fkey라는 키를 유닉스 타임스탬프 16650050에 해당하는 시점에 만료하도록 설정합니다.TTL 명령어:
TTL 명령어는 키의 남은 생존 시간을 초 단위로 반환합니다.TTL fkey를 실행하면, fkey의 남은 시간이 초 단위로 반환됩니다.-2는 키가 존재하지 않거나 만료 시간이 설정되지 않았음을 의미합니다.PTTL 명령어:
PTTL 명령어는 TTL과 비슷하지만, 남은 생존 시간을 밀리초 단위로 반환합니다.PTTL fkey를 실행하면, fkey의 남은 시간이 밀리초 단위로 반환됩니다.object refcount 명령어:
object refcount 명령어는 키가 현재 몇 개의 포인터(레퍼런스)에 의해 참조되고 있는지를 반환합니다.object refcount fkey를 실행하면, fkey의 레퍼런스 카운트가 반환됩니다.object encoding 명령어:
object encoding 명령어는 키의 값이 어떤 인코딩 방식으로 저장되어 있는지를 반환합니다.object encoding fkey를 실행하면, fkey의 값이 저장된 인코딩 방식이 반환됩니다. (int, embstr, raw 등)append 명령어:
append 명령어는 키의 기존 문자열 값 끝에 추가 문자열을 붙입니다.append fkey "extra"를 실행하면, fkey의 현재 값의 끝에 "extra" 문자열이 추가됩니다.이 명령어들은 Redis에서 데이터를 관리하기 위한 기본 도구로, 데이터를 저장하고, 만료 시간을 관리하며, 메모리 내 데이터의 속성과 상태를 확인하는데 사용됩니다. Redis의 강력한 성능과 유연성은 이러한 명령어들을 통해 데이터를 신속하게 처리하고 애플리케이션에 적시에 제공할 수 있게 합니다.
메모리 관리: 레퍼런스 카운트를 통해 어떤 키가 아직 유효하고 어떤 키가 더 이상 사용되지 않는지 판단할 수 있습니다.
메모리 누수 방지: 키에 대한 모든 참조가 제거될 때 해당 키를 안전하게 삭제함으로써 메모리 누수를 방지합니다.
디버깅: 개발자는 object refcount 명령어를 사용하여 키가 얼마나 많이 사용되고 있는지 진단할 수 있습니다.
Redis에서 object refcount 명령어가 반환하는 레퍼런스 카운트는 그 키가 내부적으로 얼마나 많은 포인터에 의해 참조되고 있는지를 나타냅니다. 일반적으로, 사용자가 set 명령어로 키를 설정할 때, 해당 키에 대한 레퍼런스 카운트는 1이 됩니다. 이는 Redis 내부적으로 그 키를 한 번 참조하고 있음을 의미합니다.
그러나 Redis의 내부 메커니즘은 더 복잡할 수 있으며, 특정 데이터 구조나 상황에서 내부적으로 레퍼런스 카운트가 1 이상이 될 수도 있습니다. 예를 들어, Redis의 복제(replication), 클라이언트 버퍼, 트랜잭션 등의 시스템 내부 프로세스가 키를 참조할 수 있습니다. 이 경우, 키의 레퍼런스 카운트는 사용자가 볼 때 1 이상일 수 있습니다.
또한, object refcount 명령어는 개발자가 직접적으로 관리하는 것이 아니라, Redis 시스템에 의해 자동으로 관리됩니다. 그러므로 사용자가 키를 생성하거나 삭제할 때 자동으로 레퍼런스 카운트가 증가하거나 감소합니다.