[TIL] Redis란?

김재진·2026년 2월 25일

내일배움캠프

목록 보기
54/70

1. Redis란?

  • Redis는 “Remote Dictionary Server”의 약자로,
    데이터를 메모리(RAM)에 저장하는 초고속 Key-Value 데이터베이스입니다.

  • Redis의 특징

특징설명
In-memory 기반모든 데이터를 메모리에 저장하므로 매우 빠른 응답 속도 제공
Key-Value 구조Key 하나당 하나의 Value를 저장 (Value는 다양한 자료구조 가능)
데이터 구조 다양성String, List, Set, Hash, Sorted Set, Stream 등
TTL 지원각 Key마다 만료시간(Time To Live) 설정 가능

2. RedisTemplate란?

  • Spring이 제공하는 Redis용 클라이언트
    Java코드로 Redis 명령어를 대신 실행해주는 도구

  • 흐름도

[ Java 코드 ]
      │      "user:1=Ravi" 저장하고 싶어요 
      ▼
[ RedisTemplate ]
      │      SET user:1 "Ravi"
      ▼
[ Redis 서버 ]
      │      저장 완료! 
      ▼
[ 결과 반환 ]

3. Redis가 단순한 DB보다 강력한 이유

  • 다양한 자료구조를 지원하기 때문에 어떤 상황에 뭘 쓸지 적어두면 좋다.
자료구조특징 실제활용 사례
Strings가장 기본형 (Text, Integer 등)단순 캐싱, 세션 저장
Lists데이터 삽입 순서대로 저장최근 본 상품 목록, 메시지 큐
Sets중복 허용 안 함, 집합 연산 가능오늘 방문한 유저 수(Unique 방문자)
Sorted Sets가중치(Score)를 주어 정렬 유지게임 랭킹 시스템, 실시간 급상승 검색어
Hashes필드-값 쌍을 가진 객체 형태유저 프로필 정보 (이름, 나이, 이메일)

4. Redis의 비밀: "왜 싱글 스레드인가?"

  • 왜? : 문맥 교환(Context Switching) 오버헤드가 없고, 메모리 접근이 워낙 빨라서 스레드 하나로도 충분

  • 주의점: 싱글 스레드이기 때문에 시간이 오래 걸리는 명령(예: KEYS *)을 날리면, 그 명령이 끝날 때까지 다른 모든 요청이 대기 하게 됨.


5. 데이터가 사라지지 않게 하려면? (Persistence)

Redis는 메모리는 전원이 꺼지면 날아가는 것을 방지하기 위해 두 가지 백업 방식을 제공한다.

  • RDB (Snapshotting): 특정 시간마다 전체 데이터를 사진 찍듯 저장. (파일 사이즈 작음, 유실 위험 있음)

  • AOF (Append Only File): 모든 쓰기 명령을 일일이 로그로 기록. (파일 사이즈 큼, 복구 시 안정성 높음)

profile
개발공부 처음해보는 사람

0개의 댓글