Redis
-
Redis Cluster 입문하기Redis 2025. 8. 14. 19:06
Redis는 InMemory 데이터 저장소로 자주 사용되지만 안정적인 운영을 위해서는 고가용성을 확보하는것이 중요하기 때문에 Redis Cluster를 사용해야 합니다.해당 글에서는 공식 문서를 기반으로 Redis Cluster의 개념을 설명하겠습니다.고가용성이란? 시스템이 다운타임 없이 오랫동안 지속적으로 정상 운영 될 수 있는 능력을 의미합니다.Redis Cluster란?Redis Cluster는 데이터를 여러 노드(서버)에 분산 저장하는 시스템입니다.확장성 : 노드를 추가해 용량과 처리량을 향상시킵니다.고가용성 : 노드 장애 시 자동 복구가 가능합니다.성능 : 작업을 분담 처리하기 때문에 성능적으로 향상시킵니다.Redis 3.0 이상부터 지원하며 최대 1000개 노드까지 확장 가능합니다.Redis ..
-
Redis Replication 정리Redis 2025. 7. 24. 18:06
1. Redis Replication 이란?Master 서버의 데이터를 Replica 서버에 복사하는 기능입니다.데이터 안전성 : Master 서버가 죽어도 Replica 서버에 데이터가 남아있습니다.성능 향상 : 읽기 요청을 Replica로 분산하여 속도를 향상시킵니다.고가용성 : Master 서버가 죽더라도 Replica 서버가 Master로 승격해서 서비스를 이어갈 수 있습니다.2. Redis Replication 작동 방식Redis Replication은 기본적으로 비동기 방식을 사용합니다.Master 서버는 Replica 서버가 데이터를 받았는지 확인하지 않고 자기 할 일을 합니다.2-1. 정상 연결 상태Master 서버가 Client의 쓰기 요청 혹은 데이터 만료를 처리하면 이 처리 데이터에 ..
-
[Redis] Caching 전략 및 가이드Redis 2025. 6. 18. 02:27
Database는 애플리케이션의 핵심이지만 잦은 데이터 조회는 성능 저하 & 부하를 일으킬 수 있습니다.Cache는 자주 사용하는 데이터를 메모리에 저장하여 Database 조회 비용과 응답 시간을 줄임으로써 위에 있는 문제를 해결하는데 중요한 역할을 합니다.목적 : Cache는 Memory Access이고 Database는 I/O 작업이기 때문에 훨씬 빠르게 조회 가능 및 부하 감소한계 : Cache와 Database 간 불일치 가능성 존재Redis Caching 전략데이터를 어떻게 저장하고 Database와 어떻게 동기화할지에 따라 크게 3가지로 나눠질 수 있습니다.✔️ Cache Aside (Lazy Loading)가장 보편적으로 사용되고 구현하기 쉬운 전략 중 하나입니다.이름처럼 애플리케이션이 캐..
-
[Redis] 트랜잭션 이해 : 원자성과 일관성 보장의 기술적 접근Redis 2025. 6. 4. 00:48
Redis Transaction Redis에서도 트랜잭션(Transaction) 개념을 지원합니다.트랜잭션은 여러 개의 명령어를 하나의 묶음으로 실행하는 것처럼 Redis에서 명령합니다.MULTIDECR coupon:summer_sale:stockLPUSH user:1:coupons "summer_sale"EXEC해당 예시를 설명해보겠습니다.MULTI : 트랜젝션 시작DECR, LPUSH 명령어를 Queue에 삽입EXEC : Queue에 삽입한 명령어를 한번에 실행기본 구성Redis 트랜잭션은 다음 세 가지 명령어를 중심으로 이루어집니다.MULTI : 시작EXEC : 순차적으로 실행DISCARD : Queue안에 있는 데이터 모두 제거작동 방식Redis 트랜잭션은 위에서 말했듯이 명령어를 모아뒀다가 EX..
-
[공식 문서 훑어보기] 6. Redis AOF 동작 원리 및 리스크 관리 대안Redis 2025. 5. 6. 14:23
Redis의 AOF(Append Only File)는 모든 쓰기 명령을 디스크에 로그 형식으로 기록함으로써 서버가 재시작될 때 해당 명령들을 순차적으로 실행하여 데이터를 복구할 수 있게 합니다.이 방식은 사람이 읽을 수 있는 형태로 저장되며 디버깅과 복구 측면에서 매우 유용합니다.그러나 모든 쓰기 작업을 로그로 남기기 때문에 시간이 지날수록 AOF 파일의 크기는 계속 증가하게 되고 결국 디스크 용량의 문제를 야기할 수 있으며 무한한 저장 공간이 존재하지 않는 이상 AOF 파일의 크기를 제어하는 메커니즘이 필수입니다.AOF 파일은 무한히 커질 수 있을까?Redis는 이를 방지하기 위해 BGREWRITEAOF라는 백그라운드 AOF 재작성 명령어를 제공합니다.이 명령어는 기존 AOF 파일의 내용을 메모리 상의..
-
[공식 문서 훑어보기] 5. Redis Persistence RDB? AOF? 장단점 알아보기Redis 2025. 5. 5. 13:42
Redis Persistence 란?Redis Persistence는 쉽게 말해 SSD와 같은 곳에 데이터를 기록하는 것을 말하며 이는 복구 작업에 사용하게 됩니다.RDB (Redis Database)RDB 방식은 현재 메모리 상태를 특정 시점에 그대로 하나의 파일로 저장하는 방식입니다.이 파일은 .rdb 확장자를 가지며, 백업이나 복구에 사용됩니다.AOF (Append Only File)Redis가 수신한 모든 쓰기 명령어를 순서대로 파일에 기록하는 방식입니다.서버가 꺼져도 이 파일을 재생(replay)해서 데이터를 복구할 수 있습니다.⭐ RDB (Redis Database) 장점1. 복구에 적합한 단일 파일 RDB는 Redis 데이터 전체를 특정 시점에 1개의 파일로 저장하는 방식 입니다.예를 들어 ..
-
[공식 문서 훑어보기] 4. Redis 기초 실무 팁Redis 2025. 4. 29. 22:18
Redis의 Primary(마스터)와 Replica(슬레이브) 구조에서는 성능 최적화를 위해 여러 가지 옵션을 설정할 수 있습니다.일반적으로 Primary 서버에서는 I/O 작업을 최소화하고 Replica 서버에서 주기적으로 RDB 스냅샷을 저장하는 것이 성능을 높이는 방법으로 공식문서에서도 권장합니다.1. Primary 서버 성능 최적화 Primary 서버는 RDB나 AOF를 비활성화하고 appendonly와 persistence 옵션을 꺼서 I/O 작업을 최소화할 수 있습니다.※ 하지만 해당 내용은 테스트 결과 항상 그렇다고 볼 수 없습니다.2. Replica 서버 역할 Replica 서버는 Primary에서 발생하는 모든 변경 사항을 복제하여 성능 부하를 줄이고 데이터를 안전하게 보존합니다.Prim..
-
[공식 문서 훑어보기] 3. Redis 기초 - 다운 타임 최소화Redis 2025. 4. 28. 22:45
Upgrading or restarting a Redis instance without downtime이 글에서는 Redis 인스턴스를 재시작하거나 업그레이드하는 상황에서 데이터 정합성을 유지하고 다운타임을 최소화하는 방법을 공식문서 토대로 설명합니다.하지만 이는 무중단 배포가 아니라 Redis 인스턴스를 재시작해야 하는 상황에서 유용하며 Docker 환경을 기준으로 설명합니다. 시나리오: Redis 6버전을 7버전으로 업그레이드 1. Primary 서버 실행먼저 Redis 6 버전을 실행합니다.Docker를 사용하여 Redis 인스턴스를 설정합니다.docker run -d \ --name redis-master \ -p 6379:6379 \ redis:6 \ redis-server --maxm..