
어제에 이어 MSA 구현 과제를 진행하고, Redis 강의를 들었다.
API 구현(이전 포스팅 참조 👉 클릭 )은 완료되었으며 추가로 아래의 필수 사항들을 충족시켰다.
Server-Port 값이 19093 , 19094 로 변경되어야 한다.FeignClient를 이용해서 주문 서비스에 상품 서비스 클라이언트 연결product_id 가 상품 목록에 존재하는지 검증주문 서비스 와 상품 서비스 에 Zipkin 을 연동하고, 호출시 Zipkin 대시보드에 Duration 이 측정 되는지 확인하기상품 서비스, 주문 서비스를 호출할 때이 외에 추가로 구현해야하는 부분이 캐싱 기능 구현인데, 이 부분은 아직 강의를 듣지 않아 오늘부터 듣고있는 중이다.
하지만 서비스를 만들다보면 때때로 일시적인 데이터를 저장해야 하는 상황이 발생한다.
대표적으로 로그인 정보, 장바구니와 같은 기능은 사용자의 행동에 따라 빈번하게 데이터의 수정이 발생한다.
이런 상황에서 파일시스템에 데이터를 저장하는 것은 그 특성상 속도가 느릴 수 밖에 없다.
그래서 특정 기능의 구현을 위해서 파일시스템을 사용하는 데이터베이스 대신,
메모리를 사용해 데이터를 일시적으로 보관하는 데이터베이스를 찾아볼 수 있다.
쉽게 말해서, 자주 사용되는 기능의 CRUD 연산은 DB에 연결하여 자원을 사용하는것보다 비교적 속도가 빠른 인메모리 저장소에 접근하여 자원을 사용하는것이 더 효율적! 그렇게 사용되는 In-Memory 데이터베이스 중 하나가 Redis라는 것이다.


Docker를 설치해두었기에 손쉽게 Redis를 실행해볼 수 있었다. Docker Hub에서 Redis-stack을 찾아 설치한다. (이미지에서 3번째)

redis는 여태까지 가장 많이 사용되어 오던 Redis 서버의 핵심(Core). 가장 간단한 형태의 연습을 하고 싶다면 redis를 사용redis/redis-stack-server는 여러 플러그인이 추가된 Redis Stack 서버. 확률형 데이터, JSON 문서 등을 사용하고 싶다면 선택redis/redis-stack는 redis/redis-stack-server에 Redis Insight가 추가된 이미지. Redis Insight를 같이 사용하고 싶다면 선택services:
redis-stack:
image: redis/redis-stack
container_name: redis-stack-compose
restart: always
environment:
REDIS_ARGS: "--requirepass systempass"
ports:
- 6379:6379
- 8001:8001docker compose up -d
docker compose ps

이후 IntelliJ에서 redis를 연결하여 사용할 수 있다.