Redis 3

Redis 분산락 정리(직접 구현 vs Redisson 비교)

들어가면서어플리케이션에서 락(Lock)은 멀티쓰레드 환경에서 동시에 같은 자원에 접근하는 것을 방지하기 위해 사용됩니다.단일 서버 환경에서는 synchronized같은 어플리케이션 레벨 락으로 충분하지만,여러 서버가 동시에 하나의 자원(예: 주문, 결제, 재고관리)을 접근하는 분산 환경에서는 이 방식만으로는 제어가 어렵습니다.예를 들어 사용자가 주문 버튼을 2번 연속으로 클릭하여 서버에 요청했다는 가정을 하겠습니다.단일 서버 환경에서는 synchronized같은 어플리케이션 레벨의 락으로 중복실행을 막을 수 있지만,서버가 여러개면 1번째 요청은 1번 서버, 2번째 요청은 2번 서버로 요청이 갔을 경우1번 서버와 2번 서버가 서로의 서로의 상태를 모르기 때문에 2번 실행되어 문제가 발생합니다.이 문제를 해..

Redis 2025.11.02

Redis 데이터 만료 전략 개념 및 예제 (Feat: TTL, TTI)

들어가면서원래는 분산락까지 함께 다루려 했지만 TTI, TTL의 내용이 많아서 다음에 다루겠습니다.서비스에서 데이터를 일정 시간 후 만료시키는 정책은 성능과 보안을 모두 고려할 때 매우 중요합니다.대표적인 시간 기반 만료 정책에는 다음 두 가지가 있습니다.TTL (Time To Live) → 저장 시점부터 고정된 시간 후 자동 만료TTI (Time To Idle) → 마지막 접근 이후 일정 시간이 지나면 만료Redis는 기본적으로 TTL 기반 만료를 제공했었습니다.그러나 Redis 6.2 이상 버전부터는 GETEX 명령어를 통해 TTI(유휴 만료)를 직접 구현할 수 있습니다.만약 6.2 미만 버전이라면, GET과 EXPIRE 명령어를 조합하여 동일한 효과를 낼 수 있습니다.이번 글에서는 TTL과 TTI의..

Redis 2025.10.12

Spring RedisTemplate 자료구조별 사용법과 CLI 정리

들어가면서Redis는 처음 접할 때는 단순히 캐시 서버나 세션 관리 도구 정도로만 생각하기 쉽습니다.하지만 Redis가 제공하는 다양한 자료구조를 활용하면 단순 캐시를 넘어 다양한 기능을 구현할 수 있습니다.세션 만료 제어 (TTL vs TTI)분산 환경에서의 락 처리작업 큐와 예약 작업랭킹 시스템UV/통계 집계이번 글에서는 Redis의 기본 개념과 함께, Spring에서 RedisTemplate을 설정하고 각 자료구조별 사용하는 방법, CLI 명령어를 정리해보겠습니다.👉 다음 편에서는 여기서 다룬 기본기를 바탕으로 실습 예제를 직접 만들어 보겠습니다.1. Redis란?Redis는 Remote Dictionary Server의 약자로, 인메모리 기반 Key-Value 저장소입니다.이름처럼 원격에서 접근..

Redis 2025.09.29