redis 간단 사용법
Posted by Albert 1Day 6Hour 14Min 26Sec ago [2026-01-25]
Redis는 단순한 키-값 저장소를 넘어, 데이터 구조에 따라 효율적인 문법을 제공합니다.
1. String (가장 기본)
가장 일반적인 형태로, 텍스트나 숫자를 저장합니다.
- SET/GET: 저장 및 조회
- Bash
SET user:1 "Alice" GET user:1
- INCR/DECR: 숫자 값 1 증가/감소 (조회수, 카운터에 유용)
- Bash
SET view_count 100 INCR view_count ' 101이 됨
- SETEX: 특정 시간(초) 후 자동 삭제 (인증번호, 세션 유지)
- Bash
SETEX temp_code 60 "123456" ' 60초 뒤 삭제
2. List (순서가 있는 목록)
데이터를 한쪽 끝에서 넣고 빼는 '큐(Queue)'나 '스택(Stack)' 구조에 쓰입니다.
- LPUSH/RPUSH: 왼쪽 또는 오른쪽으로 데이터 삽입
- Bash
LPUSH my_list "world" LPUSH my_list "hello" ' 결과: ["hello", "world"]
- LRANGE: 범위 조회 (0 -1은 전체 조회)
- Bash
LRANGE my_list 0 -1
- LPOP/RPOP: 왼쪽 또는 오른쪽에서 데이터 꺼내기 (꺼낸 데이터는 리스트에서 삭제됨)
- Bash
LPOP my_list
3. Hash (객체 구조)
필드와 값의 쌍으로 이루어진 구조로, **객체(Object)**를 저장할 때 아주 좋습니다.
- HSET/HGET: 필드 지정 저장 및 조회
- Bash
HSET user:info name "Tom" age 25 HGET user:info name
- HGETALL: 해당 키의 모든 필드와 값 조회
- Bash
HGETALL user:info
4. Set (중복 없는 집합)
중복을 허용하지 않는 데이터 꾸러미입니다. 좋아요 누른 유저 ID 저장 등에 자주 쓰입니다.
- SADD: 추가 (이미 있는 값이면 무시됨)
- Bash
SADD tags "python" "java" "python"
- SMEMBERS: 전체 목록 조회
- Bash
SMEMBERS tags
- SISMEMBER: 특정 값이 존재하는지 확인 (1: 있음, 0: 없음)
- Bash
SISMEMBER tags "python"
5. Sorted Set (ZSET, 순위 기반 집합)
값과 함께 **Score(점수)**를 저장하며, 점수 순으로 자동 정렬됩니다. 실시간 랭킹 시스템의 핵심입니다.
- ZADD: 점수와 함께 추가
- Bash
ZADD rank 100 "user_A" ZADD rank 250 "user_B"
- ZRANGE: 낮은 점수순 조회 / ZREVRANGE: 높은 점수순 조회
- Bash
ZREVRANGE rank 0 -1 WITHSCORES
유용한 관리용 명령어
데이터를 다루다 보면 꼭 필요하게 되는 명령어들입니다.
- **KEYS ***: 현재 저장된 모든 키 확인 (운영 환경에서는 성능 저하를 일으키니 주의!)
- EXISTS [key]: 키가 존재하는지 확인
- TTL [key]: 키가 삭제되기까지 남은 시간 확인 (초 단위)
- FLUSHALL: 모든 데이터 삭제 (매우 주의!)