Java 및 Spring Boot 애플리케이션용 Redis에 대해 알아보기

완료됨

Azure Cache for Redis 인스턴스가 배포되는 동안 다음 섹션을 참조하여 다음 기술에 대해 자세히 알아보세요.

  • Redis 및 Azure Cache for Redis
  • Java 및 Spring Boot 애플리케이션을 사용하는 Redis
  • Spring Data Redis 분산 캐시

Redis 및 Azure Cache for Redis

Redis는 캐시 및 메시지 브로커 역할을 하는 선택적 내구성을 갖춘 BSD 라이선스 오픈 소스 분산 메모리 내 데이터 저장소입니다. Redis는 사용 편의성, 성능, 확장성을 갖춘 가장 인기 있는 키-값 데이터베이스 중 하나로, 애플리케이션 개발자에게 매우 적합합니다.

Azure Cache for Redis는 Azure가 클라우드에서 유지 관리하고 운영하는 관리되는 Redis 버전입니다. Azure Cache for Redis는 초당 수백만 개의 요청을 처리할 수 있는 뛰어난 처리량과 성능을 포함하여 Redis의 모든 이점을 제공합니다. 또는 Azure는 자동 패치, 업데이트, 스케일링, 프로비전과 같은 관리형 클라우드 서비스의 이점을 제공합니다.

Azure Cache for Redis는 여러 서비스 계층을 제공합니다. 고급 계층은 가장 중요한 워크로드에 대한 클러스터링, 지역 복제, 고가용성을 제공합니다.

Azure Cache for Redis 사용 사례

Redis 및 Azure Cache for Redis는 다음과 같은 주요 사용 사례를 제공합니다.

  • 분산 캐시는 SQL 데이터베이스를 기반으로 하는 애플리케이션의 속도를 높입니다. Redis 클러스터의 스케일링이 데이터베이스 스케일링보다 저렴하므로 Redis는 애플리케이션의 비용을 낮출 수도 있습니다.
  • HTTP 세션 데이터 저장소는 세션 기반 애플리케이션의 스케일링을 허용하는 세션 데이터를 저장합니다. JSF(JavaServer Faces)를 사용하거나 사용자 세션에 보안 데이터를 저장하는 애플리케이션은 일반적으로 이 메커니즘을 사용합니다.
  • 메시지 브로커 솔루션은 게시/구독 또는 큐 아키텍처를 구현합니다.

Java로 Redis 사용

Redis는 Java 개발자를 위한 공식 라이브러리를 제공하지 않지만 여러 오픈 소스 라이브러리가 있습니다. Java 개발자로서의 기본 결정 중 하나는 요구 사항에 가장 적합한 라이브러리를 선택하는 것입니다. 가장 인기 있는 라이브러리는 다음과 같습니다.

  • Jedis는 가장 많이 사용되는 라이브러리이며 간단하고 사용하기 쉽습니다.
  • Lettuce는 Redis용 Spring Data와 함께 제공되므로 이 모듈에서는 이 라이브러리를 사용합니다. Lettuce는 반응형 Spring 애플리케이션을 만들려는 경우에 중요한 탁월한 비동기 지원이 제공됩니다.
  • Redisson은 최고급 Redis 클라이언트입니다. 이 기능이 필요한 경우 Redisson을 두 번째 수준의 최대 절전 모드 캐시로 사용할 수도 있습니다.

Spring Data Redis를 사용하여 분산 캐시 만들기

일반적으로 Spring Initializr에서 Spring Boot와 함께 Redis를 사용하여 분산 캐시를 만들려면 세 가지 기본 작업을 수행합니다.

  1. Spring Data Redis 라이브러리를 애플리케이션에 추가합니다.
  2. Azure Cache for Redis 인스턴스에 연결하도록 application.yml 파일을 구성합니다.
  3. Spring Data Redis를 사용하여 캐시에서 데이터를 저장하고 검색하는 비즈니스 논리를 코딩합니다.

현재 모듈에서는 Lettuce 라이브러리를 사용하지만 고급 구성이 필요하지 않으면 라이브러리를 직접 사용할 필요가 없습니다. Spring Data는 데이터 액세스 코드는 대부분의 Spring 개발자가 알아야 하는 메커니즘을 사용하여 모든 데이터 액세스 코드를 처리합니다. 또한 Spring Data를 사용하여 JPA(Java Persistence API)를 사용하여 SQL 데이터베이스에 액세스하고 MongoDB와 같은 NoSQL 데이터베이스에 액세스할 수도 있습니다.

Spring Data를 사용하려면 다음과 같은 클래스를 만들어야 합니다.

  • 데이터를 보관하는 Java bean입니다. 특정 키를 통해 Redis 데이터를 저장하고 검색하기 위해 @RedisHash Java 주석으로 클래스에 주석을 추가합니다.

  • Spring 리포지토리. 이 리포지토리는 데이터를 저장하는 Java Bean에서 CRUD(만들기, 검색, 업데이트, 삭제) 작업을 수행할 수 있는 특정 Java 클래스입니다. 예를 들어 이 클래스는 Bean의 한 인스턴스를 저장하거나 bean 목록을 검색할 수 있습니다.

    이 Spring 리포지토리를 표준 Spring bean에 삽입할 수 있습니다. 예를 들어 리포지토리 데이터를 저장하고 액세스하는 Spring MVC REST 컨트롤러에 리포지토리를 삽입할 수 있습니다.

다음 단원으로 진행하여 Spring Data Redis를 사용하는 분산 캐시가 있는 Spring Boot 애플리케이션을 만듭니다. Azure Cache for Redis 캐시 배포가 완료될 때까지 기다리는 동안 애플리케이션을 만들 수 있습니다.