Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템(DBMS) ==> 쿼리 사용 X
데이터베이스, 캐시, 메세지 브로커로 사용
인메모리 데이터 구조를 가진 저장소
메모리에 데이터를 유지하면서 빠른 읽기와 쓰기 성능을 제공
String, Lists, Sets, Sorted Sets, Hashes 자료 구조 지원
서버에 장애가 발생했을 경우 그에 대한 운영 플랜이 꼭 필요
메모리 관리가 중요
싱글 쓰레드의 특성상 한 번에 하나의 명령만 처리 가능
처리하는데 시간이 오래 걸리는 요청, 명령은 피해야함
데이터 베이스는 데이터를 물리 디스크에 직접 쓰기 때문에 서버에 문제가 발생하여 다운되더라도 데이터가 손실되지 않음 --> 하지만 매번 디스크에 접근해야 하기 때문에 사용자가 많아질수록 부하가 많아져 느려점
일반적으로 서비스 운영 초반이나 규모가 작고 사용자가 많지 않은 서비스의 경우에는 WEB - WAS - DB 구조로도 데이터 베이스에 무리가 가지 않음 --> 하지만 사용자가 늘어난다면? 데이터 베이스가 과부하 될 수 있기 때문에 캐시 서버를 도입하여 사용
이 캐시 서버로 이용할 수 있는 것이 바로 Redis
클라이언트가 데이터를 요청
웹 서버는 데이터가 존재하는지 Cache 서버에 먼저 확인
Cache 서버에 데이터가 있으면 DB에 데이터를 조회하지 않고 Cache 서버에 있는 결과값을 클라이언트에게 바로 반환(Cache Hit)
Cache 서버에 데이터가 없으면 DB에 데이터를 조회하여 Cache 서버에 저장하고 결과값을 클라이언트에게 반환(Cache Miss)
웹 서버는 모든 데이터를 Cache 서버에 저장
Cache 서버에 특정 시간 동안 데이터가 저장
Cache 서버에 있는 데이터를 DB에 저장
DB에 저장된 Cache 서버의 데이터 삭제
https://redis.io/
https://devlog-wjdrbs96.tistory.com/374
https://wildeveloperetrain.tistory.com/21
https://aws.amazon.com/ko/elasticache/what-is-redis/
훌륭한 글이네요. 감사합니다.