티스토리 뷰

728x90

Redis 란?

Redis는 오픈 소스로서 NoSQL로 분류되기도 하고, Memcached와 같이 인 메모리 솔루션으로 분류되기도 한다. 성능은 Memcached에 버금가면서 다양한 데이터 구조체를 지원함으로써 DB, Cache, Message Queue, Shared Memory 용도로 사용될 수 있다.

한편, Redis는 Remote Dictionary Server의 약자로 외부에서 사용 가능한 Key-Value 쌍의 해시 맵 형태의 서버라고 생각할 수 있다. 그래서 별도의 쿼리 없이 Key를 통해 빠르게 결과를 가져올 수 있다.

 

또한, 디스크에 데이터를 쓰는 구조가 아니라 메모리에서 데이터를 처리하기 때문에 작업 속도가 상당히 빠르다.

 

즉, 레디스(Redis)는 고성능 키-값 저장소로서 문자열, 리스트, 해시, 셋, 정렬된 셋 형식의 데이터를 지원하는 NoSQL이다.

 

Redis의 특징

- 영속성을 지원하는 인 메모리 데이터 저장소

- 다양한 자료 구조를 지원함.

- 싱글 스레드 방식으로 인해 연산을 원자적으로 수행이 가능함.

- 읽기 성능 증대를 위한 서버 측 리플리케이션을 지원

- 쓰기 성능 증대를 위한 클라이언트 측 샤딩 지원

- 다양한 서비스에서 사용되며 검증된 기술

 

Redis의 영속성

Redis는 영속성을 보장하기 위해 데이터를 디스크에 저장할 수 있다.

서버가 내려가더라도 디스크에 저장된 데이터를 읽어서 메모리에 로딩한다.

데이터를 디스크에 저장하는 방식은 크게 두 가지가 있다.

 

RDB(Snapshotting) 방식

순간적으로 메모리에 있는 내용 전체를 디스크에 옮겨 담는 방식

 

AOF(Append On File) 방식

Redis의 모든 write/update 연산 자체를 모두 log 파일에 기록하는 형태

 

Redis의 컬렉션

Redis 는 다양한 데이터 구조체를 지원하며, 이를 컬렉션이라고 부른다.

이것을 통해 Key가 될 수 있는 데이터 구조체가 다양한 것을 알 수 있다.

이렇게 다양한 자료 구조를 지원하게 되면 개발의 편의성이 좋아지고 난이도가 낮아진다는 장점이 있다.

 

 

 

 

Reference Link

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

 

 

 

 

 

728x90