[자바] Embedded Redis

임베디드 레디스 (Embedded Redis)

- Redis의 임베디드 버전이다.

- 어플리케이션 내에 직접 통합하여 사용할 수 있는 형태이다.

- 어플리케이션과 함께 배포 및 실행할 수 있어, 외부 서버에 의존하지 않고도 빠르게 데이터 저장 및 조회기능을 사용할 수 있다.

- 테스트 환경을 구성하거나, 작으 규모의 프로젝트에서 Redis를 간편하게 할 수 있도록 해준다.

- 실제 운영 환경에서의 경우, 별도의 서버에 Redis 서버를 구축하여 사용하는 것이 대중적이다.

사용 목적

- SpinLock을 활용하여 동시성 제어를 수행할 수 있다.
*  SpinLock (스핀락) : 임계 구역(critical section)에 진입이 불가능할 때 진입이 가능할 때까지 루프를 돌면서 재시도하는 방식으로 구현된 락

- 동시성 제어를 AOP( Aspect-Oriented Programming, 관점-지향 프로그래밍)를 활용하여 실습하는 데 활용할 수 있다.

주요 특징

 

- 빠른 성능 : Redis는 메모리 기반의 데이터 저장소로, 매우 빠른 읽기 및 쓰기 성능을 제공합니다.

- 간편한 통합 : 애플리케이션에 쉽게 통합할 수 있어, 별도의 서버 설정이 필요 없다.

- 데이터 구조 : Redis의 다양한 데이터 구조(스트링, 리스트, 셋, 해시 등)를 사용할 수 있다.

- 개발 편의성 : 테스트 환경이나 작은 규모의 프로젝트에 유용하며, 프로토타입 제작 시 유리하다.

자바에서의 사용 방법

라이브러리 적용하기

- embedded-redis는 Redis를 JVM 내에서 실행할 수 있게 해준다.

- Maven 또는 Gradle을 사용하여 의존성을 추가할 수 있다.

의존성 추가 예시 - Maven

<dependency>
    <groupId>com.github.codemonstur</groupId>
    <artifactId>embedded-redis</artifactId>
    <version>1.4.3</version> <!-- 최신 버전 확인 필요 -->
    <scope>test</scope>
</dependency>

의존성 추가 예시 - Gradle

testImplementation 'com.github.codemonstur:embedded-redis:1.4.3' // 최신 버전 확인 필요

 

 

예시

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import redis.clients.jedis.Jedis;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class RedisTest {

    private EmbeddedRedisServer redisServer;
    private Jedis jedis;

    @BeforeEach
    public void setUp() {
        redisServer = EmbeddedRedisServer.start();
        jedis = new Jedis("localhost", 6379);
    }

    @AfterEach
    public void tearDown() {
        jedis.close();
        redisServer.stop();
    }

    @Test
    public void testRedisFunctionality() {
        jedis.set("key", "value");
        assertEquals("value", jedis.get("key"));
    }
}

⊙ 참고 문헌

  1. 양세열, 「백엔드 취업 파트타임 스쿨 5기:Part 07. 스프링 프레임워크- Chapter 07. 사전 준비- 07.Embedded Redis 실행-001」, 제로베이스, 2024년 09월 21일, https://zero-base.co.kr/
  2. ChatGPT, "임베디드 레디스"에 대한 답변, 2024년 09월 21일, https://chatgpt.com/
  3. ChatGPT, "자바 Embedded Redis"에 대한 답변, 2024년 09월 21일, https://chatgpt.com/