상세 컨텐츠

본문 제목

[Redis] 레디스 기본 문법 가이드

DBMS/SQL

by code_down 2025. 2. 27. 20:29

본문

레디스 (Remote Dictionary Server, REDIS) 란 원격에서 접근 가능한 키-값 저장소 를 의미합니다.

Redis 는 Key-Value 기반의 NoSQL 데이터베이스이며 메모리에 올려두고 사용하는 데이터 저장소 입니다.

 

기본 명령어

명령어 설명
PING Redis 연결 확인
AUTH <password> 비밀번호 인증
SELECT <db> DB 선택 (기본값: 0)
FLUSHALL 모든 데이터베이스 초기화
FLUSHDB 현재 DB의 모든 키 삭제
DBSIZE 현재 DB의 키 개수 확인
KEYS * 모든 키 조회
EXISTS <key> 특정 키 존재 여부 확인
DEL <key> 특정 키 삭제
EXPIRE <key> <seconds> 키의 TTL(Time To Live) 설정
TTL <key> 키의 남은 TTL 확인

 

문자열 (String) 관련 명령어

명령어 설명
APPEND <key> <value> 문자열에 값 추가
INCR <key> 값 1 증가 (숫자)
DECR <key> 값 1 감소 (숫자)
INCRBY <key> <amount> 지정한 만큼 증가
SET <key> <value> 문자열 값 저장
GET <key> 값 가져오기
MSET <key1> <value1> <key2> <value2> 여러 키 한 번에 저장
MGET <key1> <key2> 여러 키 한 번에 가져오기
SETRANGE <key> <offset> <value> 특정 위치부터 문자열 변경
GETRANGE <key> <start> <end> 문자열의 일부를 반환

 

리스트 (List) 관련 명령어

명령어 설명
LPUSH <key> <value> 왼쪽(앞)에 값 추가
RPUSH <key> <value> 오른쪽(뒤)에 값 추가
LPOP <key> 왼쪽(앞) 값 제거 및 반환
RPOP<key> 오른쪽(뒤) 값 제거 및 반환
LRANGE <key> <start> <stop> 범위 내 요소 조회
LLEN <key> 리스트 길이 반환

 

집합 (Set) 관련 명령어

명령어 설명
SADD <key> <value> 값 추가
SMEMBERS <key> 모든 값 조회
SREM <key> <value> 특정 값 제거
SCARD <key> 집합의 크기(요소 개수) 반환
SISMEMBER <key> <value> 특정 값 존재 여부 확인 (1: 존재, 0: 없음)
SUNION <key1> <key2> 두 집합의 합집합 반환
SINTER <key1> <key2> 두 집합의 교집합 반환
SDIFF <key1> <key2> 두 집합의 차집합 반환

 

해시 (Hash) 관련 명령어

명령어 설명
HSET <key> <field> <value> 해시에 필드-값 추가
HGET <key> <field> 특정 필드의 값 가져오기
HGETALL <key> 모든 필드-값 조회
HDEL <key> <field> 특정 필드 삭제
HEXISTS <key> <field> 필드 존재 여부 확인 (1: 존재, 0: 없음)
HLEN <key> 해시의 필드 개수 반환

 

정렬된 집합 (Sorted Set) 관련 명령어

명령어 설명
ZADD <key> <score> <value> 정렬된 집합에 요소 추가
ZREM <key> <value> 특정 요소 제거
ZRANGE <key> <start> <stop> [WITHSCORES] 특정 범위의 요소 조회
ZREVRANGE <key> <start> <stop> 내림차순 정렬
ZSCORE <key> <value> 특정 요소의 점수 반환
ZRANK <key> <value> 특정 요소의 순위 반환

 

트랜잭션 (Transaction) 관련 명령어

명령어 설명
MULTI 트랜잭션 시작
EXEC 트랜잭션 실행
DISCARD 트랜잭션 취소
WATCH <key> 특정 키 감시 (동시성 제어)

 

발행/구독 (Pub/Sub) 관련 명령어

명령어 설명
PUBLISH <channel> <message> 특정 채널에 메시지 전송
SUBSCRIBE <channel> 특정 채널 구독
UNSUBSCRIBE <channel> 채널 구독 해제

 

기타 명령어

명령어 설명
FLUSHALL 모든 데이터 삭제
FLUSHDB 현재 DB 데이터 삭제
INFO Redis 서버 정보 조회
MONITOR Redis 실시간 요청 로그 보기
DBSIZE 현재 DB의 키 개수 확인

 

기본 문법 연습 가이드

문자열 (String)

유저 정보 저장/조회/삭제

SET user:1:name "Kim"
GET user:1:name
DEL user:1:name

 

카운터 증가/감소

INCR visit:counter
INCR visit:counter
DECR visit:counter
GET visit:counter

 

리스트 (List)

로그인 접속 기록 저장 예시

LPUSH login:history "user1"
LPUSH login:history "user2"
LRANGE login:history 0 -1
LPOP login:history
RPUSH login:history "user3"
RPOP login:history

 

정렬된 집합 (Sorted Set)

인기 검색어 순위 관리 예시

ZINCRBY search:rank 1 "Redis"
ZINCRBY search:rank 1 "Python"
ZINCRBY search:rank 1 "Redis"
ZRANGE search:rank 0 -1 WITHSCORES

 

키 만료 (Time To Live, TTL)

로그인 세션 관리 예시

SET session:user:1 "session_token_value"
EXPIRE session:user:1 300
TTL session:user:1

 

키 존재 확인

EXISTS user:1

 

즐거운 코딩하세요 :)

 

'DBMS > SQL' 카테고리의 다른 글

Offset vs Cursor Pagination 처리 방식  (0) 2024.05.21