JPA

Redis - 개념 및 Spring에서 사용

jaewoo 2023. 1. 25. 22:52

 

Cache 란?

     다음에 요청할 결과를 미리 저장해둔 후 빠르게 서비스해주는 것을 의미한다. 즉 미리 결과를 저장하고 나중에 요청이 오면 그 요청에 대해서 DB 또는 API를 참고하지않고 Cache에 접근하여 처리할 수 있다.

(주로 정적인 데이터를 다룰 때 사용하기 좋다. 주로 Open API 데이터들로 받은 값들은 DML로 바꿀 일이 없기 때문에 Cache로 저장해두는 것이 좋은 방법일 때가 있다)

 

Memcached 란?

   Memcached는 무료로 사용할 수 있는 오픈소스이며 분산메모리 Cache 시스템이다. DB부하를 줄여 웹애플리케이션의 속도 개선을 위해 사용하며 DB나 API 호출 또는 렌더링 등으로부터 받아오는 데이터를 key-value로 저장한다.

    단점 -> InMemory 기반의 시스템이므로 재부팅시 데이터가 소멸하고 이로 인해 영구적인 저장용 시스템으로는 사용할 수 없다. 만약 영구 저장이 필요하다면 해당 데이터를 DB에 저장하고 재부팅시 DB로부터 데이터를 받아야 한다.

 

 

Redis의 개념

    Redis는 오픈소스로서 NoSQL로 분류되기도 하고, Memcached와 같이 InMemory 솔루션으로 분류되기도 한다.

 Redis는 Remote Dictionary Server의 약자로 외부에서 사용 가능한 key-value 쌍의 해시 맵 형태의 데이터를 저장하는 서버로 볼 수 있다. 그래서 별도의 쿼리 없이 key를 통해 빠르게 결과를 가져올 수 있다. 또한 디스크에 데이터를 쓰는 구조가 아니라 메모리에서 데이터를 처리하기 때문에 작업 속도가 빠르다.

 

 

출처 - https://steady-coding.tistory.com/586

 

[데이터베이스] Redis란?

cs-study에서 스터디를 진행하고 있습니다. Cache Cache의 개념 Cache란 나중에 요청할 결과를 미리 저장해둔 후 빠르게 서비스해 주는 것을 의미한다. 즉, 미리 결과를 저장하고 나중에 요청이 오면 그

steady-coding.tistory.com

 

 

 

Spring에서 사용해보기 

Redis를 지원하는 자료구조는 여러가지이고 그 중에서 Map을 테스트해본다.

redisTemplate은 Bean으로 등록하고 주입받은 상태이다.
성공

redis-cli로 값 확인하기 (docker를 사용했을 경우)

 

'JPA' 카테고리의 다른 글

JPA - Querydsl로 max값 뽑기  (0) 2023.05.04
JPA - fetchJoin, Inner join  (0) 2023.03.03
JPA - JPQL ORDER BY  (0) 2023.01.17
JPA - 연관관계 Insert Query 줄이기  (0) 2022.12.19