레디스: Redis
레디스 3 - Redis 기초 CRUD 명령어
카테고리 : 개발자 유미
https://youtu.be/-2ceAlM4Cfg?si=b8L7LaHbPvZKr1gU
이번 글에서는 Redis를 “빠른 키-값 저장소” 이상으로 이해하기 위해 Redis의 주요 데이터 타입과 CRUD 명령어를 정리한다.
Redis의 핵심은 단순하다.
모든 데이터는 key – value 구조이며, value의 타입에 따라 사용할 수 있는 명령이 달라진다.
레디스 3 : Redis 기초 CRUD 명령어
- 레디스 3 : Redis 기초 CRUD 명령어
Redis 데이터 타입 개요
공식 문서: https://redis.io/docs/data-types/
Redis는 단순 문자열 저장소가 아니라, 자료구조를 메모리에 직접 구현해 둔 데이터베이스에 가깝다.
공통 특징
- key: 항상 문자열
- value: 타입별 자료구조
- 하나의 key에는 하나의 타입만 저장 가능
주요 데이터 타입
String
- 가장 기본적인 타입
- 문자열, 숫자, JSON 문자열 모두 가능
- 최대 크기: 512MB
- 캐시, 토큰, 단순 상태값 저장에 가장 많이 사용
Bitmaps
- 비트 단위(0/1) 데이터
- Boolean 상태 플래그, 출석 체크, 이벤트 기록 등에 사용
Lists
- 순서가 있는 배열 구조
- key : N개의 value
- 최대 길이:
2^32 - 1 - 큐(Queue), 스택(Stack) 구현에 적합
Sets
- 순서 없는 집합
- 중복 데이터 자동 제거
- 태그, 유저 집합, 권한 목록 등에 활용
Sorted Sets (ZSet)
- Set + Score(정렬 기준 숫자)
- 랭킹, 점수 기반 정렬 데이터에 최적
Hashes
- key 내부에 field:value 구조
- JSON과 유사하지만 부분 업데이트 가능
- 객체 단위 캐싱에 자주 사용
HyperLogLogs
- 매우 큰 집합의 중복 제거 카운트
- 정확도 대신 메모리 효율 극대화
Streams
- 로그, 이벤트 스트림
- Kafka-lite 같은 구조
- 메시지 소비/생산 패턴 구현 가능
Redis String 타입 CRUD
데이터 생성 / 수정 (Create / Update)
SET KEY VALUE
SET user:1 kim
만료 시간 설정
SET KEY VALUE EX 10 // 초 단위
SET KEY VALUE PX 5000 // 밀리초 단위
Redis에서 TTL은 캐시 설계의 핵심이다.
데이터 조회 (Read)
GET KEY
GET user:1
키 존재 여부 확인
EXISTS KEY
- 반환값:
1(존재) /0(없음)
키 삭제 (Delete)
DEL KEY
전체 데이터 삭제 ⚠️
FLUSHALL
운영 환경에서 실행하면 즉시 장애로 이어진다. 로컬 테스트 외에는 거의 금기 명령.
키 조회 명령: SCAN vs KEYS
KEYS (사용 주의)
KEYS *
- 모든 키를 한 번에 조회
- 키가 많을수록 Redis 전체 블로킹
- 운영 환경에서는 사용 금지에 가깝다
SCAN (권장)
SCAN 0
- 커서를 기반으로 점진적 조회
- 비차단 방식
- 운영 환경에서 키 탐색 시 필수
실무 기준: KEYS → 개발/로컬 SCAN → 운영
Redis List 타입 CRUD
List는 양쪽에서 push/pop이 가능한 배열이다.
데이터 추가
앞쪽에 추가 (Stack 스타일)
LPUSH KEY VALUE
LPUSH queue kim
뒤쪽에 추가 (Queue 스타일)
RPUSH KEY VALUE
데이터 제거 및 조회
앞에서 꺼내기
LPOP KEY
뒤에서 꺼내기
RPOP KEY
리스트 길이 조회
LLEN KEY
범위 조회
LRANGE KEY 시작인덱스 종료인덱스
LRANGE queue 0 -1
-1: 마지막 요소- 전체 조회 시 자주 사용
정리: 이 단계에서 꼭 기억할 것
- Redis는 타입 중심 데이터베이스
- 타입을 잘못 고르면 구조가 꼬인다
- KEYS는 편하지만 위험하다
- TTL 없는 캐시는 언젠가 폭탄이 된다
- List는 단순 배열이 아니라 큐/스택 도구