의식여행

[Redis] Redis란 무엇인가? 본문

IT(리눅스&보안&개발)/리눅스-CentOS

[Redis] Redis란 무엇인가?

의식여행중 2018. 7. 3. 17:58

Redis(Remote Dictionary Server) 는 오픈소스이며, NoSQL(Key/Value)의 구조를 갖고 있습니다.
-https://redis.io/

Redis 특징

1) 데이터를 HDD or SSD에 저장하는 대부분의 DBMS와 달리, Redis 데이터는 서버의 주 메모리에 상주합니다.

Rdis와 같은 인 메모리 데이터베이스는 디스크에 액세스해야 할 필요를 없앰으로써
검색 시간으로 인한 지연을 방지하고, CPU 명령을 적게 사용하는 좀 더 간단한 알고리즘으로 데이터를 액세스 합니다.

2) In Memory Data Structure

다양한 데이터 유형에 매핑되는 키를 저장할 수 있습니다.
기본적인 데이터 유형은 String(Text, 2진 데이터)이며 최대 크기는 512mb입니다.

-List of Strings(문자열이 추가된 순서대로 유지)
-Sorted Sets(점수에 따라 정렬)
-Hashes(필드와 값 목록을 저장)

즉, 거의 모든 유형의 데이터를 Redis 인 메모리에 저장 가능합니다.

또한 명시적으로, Expire를 설정하지 않으면 데이터는 영구 보존 됩니다.

3)복제 및 지속성

Master/Slave 아키텍쳐를 사용하면 비동기식 복제를 지원하여 데이터가 여러 슬레이브 서버에 복제될 수 있습니다.

주 서버에 장애가 발생하는 경우 요청이 여러 서버로 분산 될 수 있으므로 향상된 읽기 기능과 복구 기능을 모두 제공 가능합니다.

4)선호하는 개발 언어 지원

Redis 개발자는 백 개가 넘는 오픈 소스 클라이언트를 사용할 수 있으며
JAVA, PYTHON, PHP, C, C++, JavaSscript, Node.js, Ruby, R, Go 를 비롯한 다수의 언어가 지원됩니다.

Redis 사용 사례

1) Caching

데이터베이스 앞에 배치된 Redis는 성능이 뛰어난 인 메모리 캐시 기능을 생성하여 액세스 지연 시간을 줄이고,
처리량을 늘리며, 데이터베이스의 부담을 줄일 수 있습니다.

2) Session

Redis를 세션 키에 대한 적절한 TTL을 설정한다면 간단한 세션 정보를 관리할 수 있습니다.
ex. 게임, 전사 상거래 웹사이트 등

3. Real-Time Table

Redis Sorted Set 데이터 구조를 사용하면 요소고 목록에 유지되고 점수에 따라 정렬됩니다.
이를 통해 손쉽게 동적 순위표를 생성하여 게임에 앞서 있는 사람이 누구인지 알려주는 기능 등을 구현 가능합니다.


감사합니다.











Comments