Redis Replication
·
DB/Redis
dc ps Name Command State Ports--------------------------------------------------------------------------redis docker-entrypoint.sh redis ... Up 0.0.0.0:6379->6379/tcpreplica docker-entrypoint.sh redis ... Up 0.0.0.0:6378->6379/tcpreplica2 docker-entrypoint.sh redis ... Up 0.0.0.0:6377->6379/tcpdocker-compose exec redis redis-..
Redis 모니터링 (feat. Prometheus, Grafana, Redis 및 Redis Exporter)
·
DB/Redis
Redis 모니터링: 효율적인 성능 관리와 문제 해결을 위한 가이드Redis의 모니터링에 대해 깊이 있게 알아보겠습니다. Redis는 고성능 인메모리 데이터 저장소로 널리 사용되고 있지만, 효율적인 운영을 위해서는 적절한 모니터링이 필수적입니다. 이 글에서는 Redis 모니터링의 다양한 방법과 도구, 그리고 주요 고려사항에 대해 상세히 다루겠습니다.1. Redis CLI를 이용한 기본 모니터링Redis는 기본적으로 몇 가지 유용한 모니터링 명령어를 제공합니다. 이들은 Redis CLI를 통해 쉽게 사용할 수 있습니다.1.1 redis-cli monitor~ docker exec -it d4b14a834ba7 redis-cli monitorOK1682871818.259467 [0 127.0.0.1:5442..
Spring Boot Cache 실습
·
DB/Redis
Spring Data RedisSpring Data Redis는 Spring Framework에서 Redis와의 통합을 쉽게 처리할 수 있도록 지원하는 라이브러리입니다. 이 라이브러리를 사용하면 Redis의 다양한 데이터 구조(문자열, 리스트, 해시, 셋 등)를 다루는 데 필요한 기능을 간편하게 구현할 수 있습니다. 또한, Spring Data Redis는 Redis를 캐시, 세션 관리, 실시간 데이터 처리 등의 목적으로 사용할 수 있도록 돕습니다.설정 및 설치Spring Data Redis를 Gradle과 Maven에서 설치하는 코드를 아래와 같이 보여드리겠습니다.1. Gradlebuild.gradle 파일에 아래와 같이 의존성을 추가합니다.dependencies { implementation '..
Redis Cache 실습(Aka. Write Back)
·
DB/Redis
Write-Back Cache 패턴 실습: Redis와 MySQL을 활용한 구현Write-Back Cache 패턴은 데이터를 캐시에 먼저 쓰고, 데이터베이스로는 일정 주기로 배치 작업을 통해 동기화하는 패턴입니다. 이 패턴은 쓰기 성능을 극대화할 수 있는 장점이 있지만, 캐시 손실 시 데이터 일관성 문제를 발생시킬 수 있습니다. 이번 실습에서는 Spring Boot와 Redis, 그리고 MySQL을 사용하여 Write-Back 패턴을 구현하고, 주기적인 동기화 작업을 배치로 처리하는 방법을 다룹니다.1. Write-Back Cache 패턴 실습 개요핵심 동작 원리:쓰기 작업: 데이터는 먼저 Redis 캐시에 저장. 데이터베이스에는 바로 반영하지 않음.배치 작업: 주기적으로 Redis 캐시에 저장된 데이터..
Redis Cache 실습(Aka. Jedis, Cache Aside)
·
DB/Redis
이번 블로그 글에서는 Docker를 활용하여 MySQL 및 Redis 서버를 구축하고, 이를 Spring Boot, JPA, Redis (Jedis)와 함께 사용하여 간단한 캐싱 시스템을 구현하는 방법을 소개합니다. Cache Aside 패턴을 적용하여 데이터베이스에 저장된 사용자 데이터를 Redis에 캐싱하고, 성능을 향상시키는 방법을 실습합니다.1. 개요**목표: MySQL에 저장된 사용자 데이터를 조회할 때, 이를 Redis에 캐싱하여 성능을 향상시키는 방법을 실습합니다.기술 스택:Spring Boot: 애플리케이션 프레임워크MySQL: 데이터베이스Redis: 캐싱 솔루션Jedis: Redis와의 통신을 위한 클라이언트JPA: 데이터베이스 접근을 위한 ORM2. 환경 설정2.1. Docker를 이용..
Redis Cache 활용법: 성능 최적화를 위한 캐시 전략
·
DB/Redis
1. Cache란?Cache는 빠른 데이터 접근을 위해 임시로 데이터를 저장하는 공간입니다. 기본적으로 자주 접근하는 데이터나 계산 결과를 메모리(RAM)에 저장해 두고, 이후 요청이 들어오면 이를 빠르게 반환하는 방식입니다. CPU에서도 L1, L2 캐시를 이용해 데이터를 빠르게 처리하는 것처럼, Redis도 애플리케이션에서 데이터베이스(DB)보다 빠르게 데이터를 제공하기 위해 사용됩니다.2. Cache의 기본 동작 원리Cache는 데이터 요청 시 데이터베이스(DB)나 서버에서 데이터를 가져오는 대신, 메모리에서 즉시 데이터를 제공하여 성능을 향상시킵니다. 이를 통해 읽기 성능을 극대화하고, 불필요한 DB 접근을 줄여 시스템의 전반적인 성능을 높일 수 있습니다.Cache의 동작은 크게 두 가지로 나눌 ..
Redis Key와 Scan 명령어: 대규모 데이터 검색
·
DB/Redis
Redis에서 KEYS와 SCAN 명령어: 차이점과 사용법Redis는 빠르고 효율적인 인메모리 데이터 저장소로, 다양한 명령어를 제공하여 데이터를 관리하고 조회할 수 있습니다. 그중에서 KEYS와 SCAN 명령어는 Redis 데이터베이스에서 키 목록을 검색할 때 사용하는 두 가지 주요 명령어입니다. 이 글에서는 각 명령어의 특징과 차이점, 그리고 실제로 어떤 상황에서 사용하면 좋은지에 대해 설명하겠습니다.1. Redis의 단일 스레드 처리 방식Redis는 단일 스레드 기반으로 동작합니다. 이는 모든 명령이 하나씩 순차적으로 실행되며, 특정 명령어가 많은 리소스를 소비할 경우 다른 작업에 영향을 줄 수 있음을 의미합니다. 이러한 특성은 키 검색과 같은 명령어에서 중요하게 작용합니다.2. KEYS 명령어: ..
Redis 트랜잭션: 안전한 데이터 변경 처리하기
·
DB/Redis
1. HTTP 트랜잭션HTTP 트랜잭션은 클라이언트와 웹 서버 간의 통신을 나타내며, 다음과 같은 흐름으로 이루어집니다:클라이언트가 HTTP 요청을 전송: 클라이언트는 서버에 요청을 보냅니다. 이 요청에는 URL, 메소드(GET, POST 등), 그리고 추가적인 데이터(예: 헤더, 본문)가 포함됩니다.서버가 응답: 서버는 요청을 처리한 후, 해당하는 응답(HTTP 응답 코드, 데이터)을 클라이언트로 전송합니다.HTTP 트랜잭션은 주로 요청-응답 기반으로 이루어지며, 요청의 성공 또는 실패에 대한 즉각적인 응답이 제공됩니다. 그러나 트랜잭션의 일관성이나 원자성에 대한 보장은 없습니다.2. 데이터베이스 트랜잭션 (DB 트랜잭션)데이터베이스 트랜잭션은 주로 ACID 속성에 기반하여 정의됩니다:원자성(Atomi..