관련 내용
[백엔드/스프링] - Redis, 캐시, Lettuce란, 스프링 Redis 적용 시 주의 사항
개요 목적
위 관련 내용 블로그 글에서는 Spring에서 Redis를 DB 캐시를 사용하여, 음식 목록을 빠르게 조회하는 방법에 대해서 알아보았다. 이번 글에서는 Redis가 하는 역할인 캐시란 무엇인지, 그리고 Redis가 가지는 특징이 무엇인지 알아보겠다.
Redis는 Global Cache 역할을 한다.
Redis를 설명하기 전에 역할인 Global Cache에 대해서 알아보자.
먼저 Cache란, 나중에 요청할 데이터를 미리 저장하고, 요청이 들어왔을 때 빠르게 데이터를 전달해주는 서비스이다. 또는 데이터를 복사해 놓은 임시 장소이다.
DB에서 캐시 서비스를 사용하지 않으면, DB 네트워크 연결, 검색 쿼리 검색 등 데이터를 얻는 시간과 부하가 증가한다. 그러나, 자주 사용하는 데이터를 캐시에 저장해 놓으면 요청 시 빠르고 DB 부하 없이 데이터를 전달 할 수 있다.
Cache의 종류에는
- Local Cache
- 해당 Local Server 장비의 Resource를 이용한다 (Memory, Disk)
- 서버 내의 장비를 사용해서 빠르지만, 여러 서버와 함께 쓰는 데이터를 저장하지 못한다.
- Global Cache
- 별도의 Cache Server를 둔다.
- Local Chache와 달리 네트워크 트래픽을 사용하여, 시간이 걸린다.
- 여러 서버에서 접근 할 수 있는 데이터를 관리할 수 있다.
Redis 특징
key-value 형식의 데이터 저장
key-value 형식으로 데이터를 저장하기 때문에, 쿼리를 사용하지 하고 데이터를 조회할 수 있다.
다양한 자료 구조 사용
String, Sets(String의 집합), SortedSet(중복된 데이터를 담지 않는 정렬된 Set구조), Lists(Array 형식의 데이터 구조), Geospatil Indexs 등 다양한 자료구조를 저장할 수 있다.
IN-Memory DB
disk가 아닌 memory에 데이터를 저장하기 때문에, disk I/O가 발생하지 않아서, 데이터를 빠르게 읽어올 수 있다. Memcached와 다르게, 디스크에도 저장할 수 있다.
스냅샷과 복제
스냅샷을 사용하여 특정 시점의 데이터를 디스크에 저장할 수 있고, 장애 상황 시 복구에 사용할 수 있다.
Redis를 사용하면 Master - Slave 구조의 여러 복제본을 사용할 수 있다.
Redis와 다른 Memcached 특징
Redis와 같은 IN-Memory DB인 Memcached의 Redis와 다른 특징에 대해서 알아보자.
- 데이터 타입을 String만 지원한다.
- 멀티 쓰레드를 지원해서, 다중처리가 빠르다.
- 오직 메모리에만 데이터를 저장한다. 그래서 Redis와 달리 데이터 복제가 불가능해서 캐시로만 사용할 수 있다.
Reference
https://kdhyo98.tistory.com/88
https://wildeveloperetrain.tistory.com/21
https://kdhyo98.tistory.com/89
'리눅스 인프라 > Redis' 카테고리의 다른 글
DB 접근을 줄이고 빠른 조회를 위한 Spring Redis 사용 (0) | 2023.01.15 |
---|