Redis에서 자주 사용되는 주요 명령어 각각의 설명과 활용법을 명령어 옵션 및 코드 예제와 함께 정리한 내용입니다.
1. SET 명령어
- 용도: 문자열 값을 특정 키에 저장합니다. 키가 이미 존재하면 기존 값을 덮어씁니다.
- 옵션
EX <seconds>
: 지정된 시간(초) 동안만 키가 유지됨.PX <milliseconds>
: 지정된 시간(밀리초) 동안만 키가 유지됨.NX
: 키가 존재하지 않을 때만 설정.XX
: 키가 존재할 때만 설정.
예제
# 단순 저장
SET user:1001 "session_data"
# 유효 시간 10초 설정
SET user:1002 "temp_data" EX 10
# 키가 없을 때만 저장
SET user:1003 "new_data" NX
결과
OK
: 성공적으로 저장됨.nil
: 조건(NX 또는 XX) 만족 못할 때.
2. GET 명령어
- 용도: 특정 키에 저장된 값을 반환합니다.
예제
GET user:1001
결과
session_data
: 키에 저장된 값.nil
: 키가 존재하지 않을 경우.
3. LPUSH / RPUSH 명령어
- 용도: 리스트의 앞쪽(LPUSH) 또는 뒤쪽(RPUSH)에 요소를 추가합니다.
예제
# 리스트 뒤쪽에 요소 추가
RPUSH job_queue "job1"
RPUSH job_queue "job2"
# 리스트 앞쪽에 요소 추가
LPUSH job_queue "job0"
결과
- 숫자 값: 리스트의 요소 개수.
4. LPOP / RPOP 명령어
- 용도: 리스트의 앞쪽(LPOP) 또는 뒤쪽(RPOP)에서 요소를 제거하고 반환합니다.
예제
# 리스트 앞쪽에서 제거 및 반환
LPOP job_queue
# 리스트 뒤쪽에서 제거 및 반환
RPOP job_queue
결과
job0
또는job2
: 제거된 요소.nil
: 리스트가 비었을 경우.
5. EXISTS 명령어
- 용도: 특정 키가 존재하는지 확인합니다.
예제
EXISTS user:1001
결과
1
: 키가 존재함.0
: 키가 존재하지 않음.
6. DEL 명령어
- 용도: 특정 키를 삭제합니다.
예제
DEL user:1001
결과
- 숫자 값: 삭제된 키의 수.
7. INCR / DECR 명령어
- 용도: 특정 키의 값을 정수로 증가(INCR) 또는 감소(DECR)시킵니다.
예제
# 값 증가
INCR page_view
# 값 감소
DECR page_view
결과
- 증가 또는 감소된 값.
8. SADD / SREM 명령어
- 용도: 집합(Set)에 요소를 추가(SADD)하거나 제거(SREM)합니다.
예제
# 집합에 요소 추가
SADD online_users "user1"
# 집합에서 요소 제거
SREM online_users "user1"
결과
1
: 성공적으로 추가/제거됨.0
: 실패(이미 존재하거나 없음).
9. SMEMBERS 명령어
- 용도: 집합에 있는 모든 요소를 반환합니다.
예제
SMEMBERS online_users
결과
- 집합에 포함된 모든 요소.
10. EXPIRE 명령어
- 용도: 특정 키에 TTL(유효 시간)을 설정합니다.
예제
EXPIRE user:1001 60
결과
1
: TTL 설정 성공.0
: 키가 존재하지 않음.
11. KEYS 명령어
- 용도: 특정 패턴에 매칭되는 모든 키를 반환합니다. (운영 환경에서는 주의해서 사용해야 함!)
예제
KEYS user:*
결과
- 특정 패턴에 매칭되는 키 리스트.
12. HSET / HGET 명령어
- 용도: 해시(Hash) 자료구조에 필드-값 쌍을 저장하거나 가져옵니다.
예제
# 필드-값 쌍 저장
HSET user:1001 name "John" age "30"
# 특정 필드 값 가져오기
HGET user:1001 name
결과
OK
: 저장 성공.- 필드 값: 값 반환.
13. ZADD / ZRANGE 명령어
- 용도: 정렬된 집합(Sorted Set)에 요소를 추가(ZADD)하거나 범위를 가져옵니다(ZRANGE).
예제
# 요소 추가
ZADD leaderboard 100 "player1"
ZADD leaderboard 200 "player2"
# 점수 순으로 정렬된 요소 반환
ZRANGE leaderboard 0 -1 WITHSCORES
결과
- 순서대로 정렬된 요소 리스트.
14. FLUSHALL 명령어
- 용도: 모든 데이터를 삭제합니다. 주의해서 사용해야 합니다.
예제
FLUSHALL
결과
OK
: 모든 키 삭제.
주의사항
- Redis는 매우 빠르고 강력한 도구지만, 명령어를 적절히 사용하지 않으면 성능 문제나 데이터 손실이 발생할 수 있습니다.
KEYS
및FLUSHALL
같은 명령은 테스트 환경에서만 사용하는 것이 좋습니다.- 데이터 만료(TTL) 및 유효 시간 설정을 통해 적절히 리소스를 관리하세요.
각 명령어는 Redis의 다양한 데이터 구조(String, List, Set, Hash, Sorted Set 등)와 결합하여 유연한 데이터 관리 및 처리가 가능합니다.
728x90
댓글