Webflux 소개
·
프레임워크/자바 스프링
Spring WebFlux는 Reactive Stream API를 기반으로 한 비동기, 논블로킹 웹 프레임워크로, 대량의 트래픽과 I/O가 많은 환경에서 기존 서블릿 기반의 Spring MVC보다 더 효율적인 성능을 제공합니다. WebFlux의 핵심 키워드는 Reactive Stream, Non-blocking, Asynchronous입니다.주요 활용 사례마이크로서비스 게이트웨이(Gateway)WebSocket실시간 채팅 서비스하지만 모든 상황에서 Spring WebFlux가 최적은 아닙니다. 특히 CPU Bound 작업(연산이나 계산이 주가 되는 경우)에서는 Spring MVC와 같은 동기 처리 방식이 더 나은 성능을 발휘할 수 있습니다. 반면, I/O Bound 작업(입출력 작업이 많은 경우)에서는 ..
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..
Redis Pub/Sub과 Spring Boot를 활용한 실시간 알림 시스템 구현
·
프로그래밍 언어/스프링부트
Redis의 Pub/Sub 기능과 Spring Boot를 사용하여 실시간 알림 시스템을 구현하는 방법에 대해 알아보겠습니다. 먼저 Redis Pub/Sub에 대한 기본 개념부터 시작하여 실제 구현까지 단계별로 살펴보겠습니다.1. Redis Pub/Sub 소개Redis Pub/Sub(Publish/Subscribe)은 메시지 브로커 패턴을 구현한 기능으로, 발행자(Publisher)가 메시지를 특정 채널에 보내면 해당 채널을 구독하고 있는 모든 구독자(Subscriber)가 실시간으로 메시지를 받을 수 있는 시스템입니다.1.1 Redis Pub/Sub의 주요 특징비동기 통신: 발행자와 구독자 간 직접적인 연결이 필요 없음다대다 통신: 여러 발행자가 여러 구독자에게 메시지를 전달할 수 있음실시간 처리: 메시..
Spring Session
·
프로그래밍 언어/스프링부트
Spring Session과 Spring Security에서 제공하는 Session은 각각의 특징과 기능이 있으며, 주로 웹 애플리케이션에서 세션을 관리하고 보안을 강화하는 데 사용됩니다. 이 둘은 유사한 용도로 보일 수 있지만, 서로 다른 목적과 기능을 제공합니다. 각 개념을 살펴보고, 그 차이점을 설명하겠습니다.1. Spring SessionSpring Session은 분산된 환경에서 HTTP 세션을 관리하고, 세션 데이터를 다양한 데이터 저장소에 저장할 수 있도록 지원하는 모듈입니다. 주로 세션 관리를 중앙화하고, 세션을 외부 저장소(Redis, JDBC 등)에 저장하기 위해 사용됩니다.주요 특징 및 기능1. HTTP 세션 공유:Spring Session을 사용하면 다중 서버 환경에서 세션을 중앙화..
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를 이용..