🟥 Redis가 뭘까
Redis란 위키백과에 따르면 다음과 같다고 한다. Remote Dictionary Server의 약자로서 Key-Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)라고 한다. 모든 데이터를 메모리로 불러와서 처리하는 메모리 기반 DMBS라고 한다. 레디스는 스트링 뿐 아니라 자료구조의 추상적 자료형(Abstract Data Type)도 지원한다는 점이 다른 것들과 차이를 나타낸다고 볼 수 있다.
이렇게 다양한 자료구조를 지원하는 것에 대한 장점으로 개발의 편의성이 좋아지고 난이도가 낮아진다는 점을 꼽을 수 있다. Redis를 이용하면 레디스에서 제공하는 Sorted-Set이라는 자료구조를 이용해 더 빠르고 간단하게 데이터를 정렬할 수 있기 때문이다.
NoSQL로 Key-Value 타입의 저장소인 Redis의 주요 특징은 다음과 같다고 한다.
- 영속성을 지원하는 인메모리 데이터 저장소다
- 읽기 성능 증대를 위한 서버 측 복제를 지원한다
- 쓰기 성능 증대를 위한 클라이언트 측 샤딩(Sharding) 지원한다
- 다양한 서비스에서 사용되며 검증된 기술이다
- 다양한 데이터형을 지원함에따라 메모리 저장소임에도 불구하고 다양한 기능을 구현할 수 있다
즉, Redis는 고성능 Key-Value 저장소로써 다양한 자료구조를 지원하는 NoSQL이라고 볼 수 있다.
🟥 Redis의 영속성
Redis는 지속성을 보장하기 위해 데이터를 Disk에 저장할 수 있다고 한다. 서버가 내려가더라도 Disk에 저장된 데이터를 읽어서 메모리에 로딩을 한다고 한다.
데이터를 Disk에 저장하는 방식으로는 크게 2가지가 있다고 하는데 다음과 같다고 한다.
- RDB(Snapshotting) 방식 : 순간적으로 메모리에 있는 내용을 Disk에 전체를 옮겨 담는 방식
- AOF(Append On File) 방식 : 레디스의 모든 write/update 연산 자체를 모두 log 파일에 기록하는 방식
🟥 Redis의 사용
Redis를 사용하기 좋은 곳은 어디일까? 보통은 웹 서버에서 Key-Value 형태의 데이터 타입을 처리해야 하고 I/O가 빈번히 발생해 다른 저장 방식을 사용하면 효율이 떨어지는 경우에서 사용하게 된다. 어떤 것이 있을까?
유튜브를 생각해보자. 유튜브는 조회수와 같은 카운트 형태의 데이터가 필요로 할 것이다. 짧은 시간안에 조회수가 올라가듯 카운터도 올라갈 것인데 이럴 경우 이 데이터를 RDS 형태의 데이터에 저장해 I/O를 반복한다면 엄청난 자원이 사용될 것이라는 것을 상상할 수 있을 것이다. 이런 경우에 Redis를 이용해 데이터를 캐싱 처리하고 일정한 주기에 따라 RDS에 업데이트를 한다면 RDS에 가해지는 부담을 크게 줄이고, 성능은 향상시킬 수 있을 것이라고 한다.
또 Redis가 가장 많이 사용되는 부분은 사용자의 세션 관리 라고 한다. 사용자의 세션을 유지하고 불러오고 여러 활동들을 추적 하는 등의 효과적으로 사용이 가능하다고 한다. 매우 빠르게 동작한다는 점에서 메시지 큐잉에도 사용할 수 있다고 한다. 또한 API 캐싱 역시 라우트로 들어온 요청에 대해 요청 값을 캐싱하면 동일 요청에 대해 캐싱된 데이터를 리턴하는 방식으로 요긴하게 사용 할 수 있다고 한다.
레디스의 더욱 자세한 내용은 아래의 첨부 링크를 통해 더 공부해 볼 수 있을 것이다.
참조 : https://devlog-wjdrbs96.tistory.com/374
[DB] Redis란 무엇일까? 간단하게 알아보기!
Redis란 무엇일까? Redis는 Memcached와 비슷한 캐시 시스템 으로서 동일한 기능을 제공하면서 영속성, 다양한 데이터 구조와 같은 부가적인 기능을 지원하고 있습니다. 레디스는 모든 데이터를 메모
devlog-wjdrbs96.tistory.com
참조 : https://wildeveloperetrain.tistory.com/21
Redis란? 레디스의 기본적인 개념 (인메모리 데이터 구조 저장소)
Redis란? Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템 (DBMS)입니다. 데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리
wildeveloperetrain.tistory.com
참조 : https://brunch.co.kr/@skykamja24/575
레디스(Redis)는 언제 어떻게 사용하는 게 좋을까
레디스를 사용해 본 적 없는 백엔드, 데이터베이스 개발자를 위해 | 레디스는 시스템 메모리를 사용하는 키-값 데이터 스토어입니다. 인메모리 상태에서 데이터를 처리함으로써 흔히 사용하는
brunch.co.kr
Documentation
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker
redis.io
'📖 TIL > Node.js' 카테고리의 다른 글
[Node.js] Microservice (0) | 2022.03.22 |
---|---|
[Node.js] BigQuery (0) | 2022.03.21 |
[Node.js] Elastic Search (0) | 2022.03.19 |
[Node.js] Pagination (0) | 2022.03.18 |
[Node.js] Search Process (0) | 2022.03.17 |