Spring Boot 3와 Redis: 로컬 도커 환경에서 시작하기

2024. 5. 8. 16:54·개발중/Spring Boot & Redis
728x90
반응형

 

 

 

이 블로그 포스트에서는 로컬 개발 환경에서 Docker를 활용하여 Redis를 설치하고 구성하는 과정을 안내합니다. Redis는 다양한 개발 상황에서 선호되는 오픈 소스, 인 메모리 키-값 데이터베이스로, 빠른 성능과 높은 확장성을 제공합니다. 또한, 최신 Spring Boot 3 프레임워크와의 통합을 통해 실제 어플리케이션 개발 상황을 시뮬레이션하며 기초적인 CRUD 작업을 수행하는 예제를 소개하고자 합니다.

Docker를 이용한 Redis 설치

docker 에서 redis 설치 후 실행 시키는 방법

1. Redis 이미지 다운로드
Redis Docker 이미지를 다운로드합니다. 터미널 또는 커맨드 라인을 열고 다음 명령을 실행합니다:

 

docker pull redis



2. Redis 컨테이너 실행
다운로드한 Redis 이미지를 기반으로 컨테이너를 생성하고 실행합니다. 다음 명령을 사용하여 Redis 서버를 시작할 수 있습니다

 

docker run --name some-redis -p 6379:6379 -d redis

 

 

  • --name some-redis: 컨테이너의 이름을 some-redis로 설정합니다.
  • -p 6379:6379: Docker 호스트의 6379 포트와 컨테이너의 6379 포트를 연결합니다. 이렇게 하면 로컬 컴퓨터에서 Redis 서버에 접근할 수 있습니다.
  • -d: 컨테이너를 백그라운드 모드에서 실행합니다.
  • redis: 사용할 이미지 이름입니다.

 

Redis와 스프링 부트 통합하기

Redis는 빠른 데이터 처리 속도와 유연성으로 많은 개발자에게 사랑받는 오픈 소스 인-메모리 데이터 저장소입니다.

스프링 부트와 통합하면, 세션 관리, 캐싱 등 다양한 기능을 효과적으로 활용할 수 있습니다.

1. 의존성 추가

스프링 부트 프로젝트에서 Redis를 사용하기 위해서는 먼저 필요한 의존성을 프로젝트에 추가해야 합니다. 이를 위해 build.gradle 파일에 다음과 같은 코드를 포함시킵니다:

 

implementation 'org.springframework.boot:spring-boot-starter-data-redis'
implementation group: 'org.springframework.session', name: 'spring-session-data-redis', version: '3.2.2'

 

2. Redis 설정

Redis를 사용하기 위한 기본 설정은 매우 간단합니다. 스프링 부트의 설정 파일(application.yml 또는 application.properties)에 Redis 서버의 주소와 포트를 명시합니다

spring:
    redis:
      host: localhost
      port: 6379

 

 

이 설정은 로컬 컴퓨터에서 실행 중인 Redis 서버에 접속하도록 지시합니다. LettuceConnectionFactory는 이 정보를 사용하여 Redis 서버와의 연결을 생성하고 관리합니다.

 

@Configuration
public class RedisConfig  {

    @Bean
    public LettuceConnectionFactory redisConnectionFactory() {
        return new LettuceConnectionFactory();
    }
}

 

 

이 코드는 스프링의 설정 클래스 안에 위치하며, LettuceConnectionFactory 객체를 스프링 컨텍스트에 빈으로 등록합니다. 이 빈은 다른 스프링 컴포넌트가 Redis 연결을 필요로 할 때 사용됩니다.

 

로그인 성공 정보 저장

스프링 세션과 Redis를 사용하면, 사용자의 로그인 성공 정보를 자동으로 Redis에 저장할 수 있습니다.

이렇게 하면 사용자가 애플리케이션에 다시 접속할 때마다 로그인을 반복하지 않고 세션 정보를 통해 자동으로 인증을 받을 수 있습니다. 이 기능은 특히 웹 애플리케이션에서 유용하며, 사용자 경험을 크게 개선할 수 있습니다. 

 

코드 확인하기

https://github.com/soobinJung/SpringBootRedisDocker

 

GitHub - soobinJung/SpringBootRedisDocker

Contribute to soobinJung/SpringBootRedisDocker development by creating an account on GitHub.

github.com

 

 

728x90
반응형
저작자표시 (새창열림)

'개발중 > Spring Boot & Redis' 카테고리의 다른 글

Spring Boot 기반 Redis Pub/Sub 구현: 분산 환경에서 Pod 간 이벤트 처리  (2) 2024.11.16
Redis Pub/Sub 기반 SSE 실시간 알림 삽질 통해 구현하기.  (0) 2024.09.24
Spring Boot 3.x 및 Security 6.x를 이용한 중복 로그인 관리 방법  (0) 2024.05.03
Spring Boot와 Redis를 사용한 데이터 저장 및 관리  (0) 2024.05.03
Spring Boot 2.x.x에서 3.x.x로 업그레이드 후 Redis에 Java 객체 저장 문제 발생  (0) 2024.04.16
'개발중/Spring Boot & Redis' 카테고리의 다른 글
  • Spring Boot 기반 Redis Pub/Sub 구현: 분산 환경에서 Pod 간 이벤트 처리
  • Redis Pub/Sub 기반 SSE 실시간 알림 삽질 통해 구현하기.
  • Spring Boot 3.x 및 Security 6.x를 이용한 중복 로그인 관리 방법
  • Spring Boot와 Redis를 사용한 데이터 저장 및 관리
Binsoo
Binsoo
내 트러블 슈팅
  • Binsoo
    정수빈 기술블로그임.
    Binsoo
  • 전체
    오늘
    어제
    • 빈수 개발자 개발 일기 (932)
      • 개발중 (634)
        • Spring Boot (95)
        • Spring Security (2)
        • Spring Batch (6)
        • Spring Boot & Redis (13)
        • Java Persistence API (JPA) (28)
        • Web (42)
        • Rest Api (7)
        • Spring Concurrency Control (3)
        • Redis (8)
        • Kubernetes (k8s) (4)
        • MYSQL (35)
        • AirFlow (15)
        • Docker (2)
        • Git (22)
        • Linux (9)
        • JSON Web Tokens (JWT) (4)
        • Troubleshooting (87)
        • Swagger (0)
        • Vue.js (52)
        • Java (74)
        • html (12)
        • C (5)
        • jQuery (15)
        • JavaServer Pages (JSP) (17)
        • Arduino (1)
        • JavaScript (35)
        • Amazon Web Services (AWS) (11)
        • Algorithm (9)
        • 참고 기능 (18)
        • mongo (2)
      • PROJECT (27)
        • 스프링부트+JPA+몽고 API 개발 (3)
        • MINI (2)
        • 게시판 (3)
        • vue 프로젝트 (1)
        • JPA 사이드 프로젝트 기록 (17)
      • TEAM STUDY (156)
        • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (8)
        • 한 권으로 읽는 컴퓨터 구조와 프로그래밍 (12)
        • NAVER DEVELOPER (4)
        • LINUX (23)
        • PYTHON (19)
        • SERVER (8)
        • 알고리즘 코딩 테스트 스터디 (31)
        • 쿠버네티스 (40)
        • 대세는 쿠버네티스 [초급~중급] (11)
      • BOOK (0)
      • 자격증 (61)
        • 리눅스 1급 - 필기 기록 (19)
        • 네트워크 관리사 (2)
        • 네트워크 관리사 2급 - 실기 기록 (21)
        • 네트워크 관리사 2급 - 필기 기록 (16)
        • 정보처리 (2)
      • 직장인 대학원 (17)
        • 기록 (1)
        • 캐글 스터디 (3)
        • R (12)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    VUE
    Git 저장소
    리눅스 마스터
    리눅스 마스터 요약
    springboot
    네트워크 관리사 자격증
    리눅스 마스터 1급
    쿠버네티스
    네트워크 관리사 2급
    리눅스 마스터 1급 요약
    스프링
    파이썬 알고리즘
    REST API
    파이썬
    jpa
    docker
    git
    리눅스 1급 요약
    네트워크 관리사 2급 실기
    java
    네트워크 관리사 요약
    쿠버네티스 스터디
    BackendDevelopment
    네트워크 관리사 실기
    redis
    리눅스 마스터 1급 정리
    Spring
    네트워크 관리사
    네트워크 관리사 학점
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Binsoo
Spring Boot 3와 Redis: 로컬 도커 환경에서 시작하기

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.