1. redis docker로 실행
docker run -d -p 6379:6379 --name redis redis
✅ 1. 캐시 작동 방식 요약 (@Cacheable)
@Cacheable(value = "post", key = "#id")
public PostResponseDto getPostById(Long id) { ... }
@Cacheable(value = "post", key = "#id") public PostResponseDto getPostById(Long id) { ... }
이렇게 선언된 메서드는:
- 처음 호출 시: DB에서 조회 → 결과를 Redis에 캐시 저장
- 두 번째부터: Redis에 캐시된 데이터를 반환 → DB 조회 생략됨
- 캐시 key: post::1, post::2 형식으로 저장됨
📁 firstproject
┗ 📁 src
┗ 📁 main
┗ 📁 resources
┗ 📄 application.yml ✅ 요기!
여기 위치에는 application.properties가 있었다. 이거랑 같은 역할을 한다길래, 해당 파일 하단에 다음을 추가하였다.
#REDIS 추가설정부분을 보면 된다.
spring.application.name=backend_B
server.servlet.encoding.force=true
server.address=0.0.0.0
# ================================
# DB 연결설정
# ================================
spring.datasource.url=${SPRING_DATASOURCE_URL}
spring.datasource.username=${SPRING_DATASOURCE_USERNAME}
spring.datasource.password=${SPRING_DATASOURCE_PASSWORD}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# ================================
# JPA 연결 설정
# ================================
# 연결 설정 값 update, ????? validate ?? none ??
spring.jpa.hibernate.ddl-auto=update
# SQL ?? ?? ??
spring.jpa.show-sql=true
# SQL ?? ??? ??
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
# ================================
# Redis 캐시 설정
# ================================
spring.cache.type=redis
spring.data.redis.host=localhost
spring.data.redis.port=6379
logging.level.org.springframework.cache=DEBUG
Redis란 ?
https://aws.amazon.com/ko/elasticache/what-is-redis/
Redis란 무엇입니까? – Amazon Web Services(AWS)
Redis 개발자는 백 개가 넘는 오픈 소스 클라이언트를 사용할 수 있으며, Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, R, Go를 비롯한 다수의 언어가 지원됩니다.
aws.amazon.com
오픈소스로 key-value 기반의 인-메모리 저장소. 쿼리를 날릴 필요 없이 결과를 바로 가져올 수 있고, 디스크에 데이터를 쓰는 구조가 아니라 '메모리'에서 데이터를 처리하기 때문에 속도가 매우 빠르다(DB를 조회하는것보다 빠르다)
임시 저장소(메모리)에서 계속 조회수를 업그레이드하고, DB에는 일정 시간마다만 업로드 되도록 하는 것이다.
(사용 예) 콘서트 예매 (티켓팅... 캐시사용하여 과부하 방지)
조회 로직/Loock aside cache
클라이언트 ---1.요청---> 웹서버
|--------2.데이터 존재 유무 확인-----> Cache
<------- 3.1 있다면 바로 꺼내줌--------|
|----- 3-2.없다면 DB확인 -------> DB
<-- 4. DB에서 조회후 캐시에 저장 --|
저장 로직/ Write Back
클라이언트 ---1.요청---> 웹서버
|-------2.데이터 1차 저장-----> Cache
6(Woker server)9 |--- 3. 워커서버들이 데이터 작업(저장) ---> DB
Redis 설치
1) 윈도우 2) 리눅스
'백엔드 공부(BE, AWS)' 카테고리의 다른 글
| [SpringBoot3]JPA - fetch 타입 (0) | 2025.09.24 |
|---|---|
| 25.07.02 생성시각 삽입 (0) | 2025.07.02 |
| 게시판 CRUD 인기순 정렬(조회수기반) (0) | 2025.07.02 |
| Article 파일 수정(오류수정) (0) | 2025.06.30 |
| 기존 mysql 수정 (0) | 2025.06.29 |