본문 바로가기

끄적대기

Redis Server

728x90
반응형

˙Redis Server 기초

 REDIS(REmote DIctionary Server)로 이탈리아 해커가 직접 개발한 서버이다. 오픈 소스로 운영되는 메모리 기반의 데이터 저장소로, 여러 대의 서버 운영이 가능하고, 데이터베이스로도 활용이 가능하며, 초당 최대 10만 회 수행하는 In-Memory* Solution 방식이다.

 

˙Redis Server 운영

 디스크에 직접 넣어 저장하고, 다른 서버 메모리에 복사본을 백업한다. 메모리를 활용하면서 데이터를 보존(Snap-Shot*)하여, 배열과 리스트 등의 데이터 처리에 유용하다. 단일(Single) 스레드를 사용하여, Master-Slave* 방식으로 여러 대의 서버 운영이 가능하다. String, Lists, Sets, Sorted Sets, Hashs 등의 데이터 형태가 사용 가능하다.

 

˙Redis Server 활용

 속도가 빠르고 사용이 간편하여 최고의 성능이 필요한 웹이나 모바일, 게임, IoT 등에 널리 사용된다. Redis 데이터는 주 메모리에 상주하기 때문에 디스크 액세스 요인을 제거한다. In-Memory 구조로 다양한 데이터 유형에 Mapping Key를 저장하여 수시로 활용한다. 개발에 있어서 보다 쉽고 효율적인 운영을 위하여 원자성 카운터 등의 여러 가지 도구를 제공한다. Master-Slave 아키텍처를 사용하여 비동기식 복제를 지원하여 여러 데이터 복제가 가능하고, 안정성을 제공하기 위한 Snap-Shot 기능 지원 및 AOF를 통한 데이터 변경 시 디스크 저장한다.

 

˙Redis Server 활용

 In-Memory 캐시를 생성하여 액세스 지연 시간을 줄이고, 처리량을 늘리며, 부담을 줄여주는 캐싱, 세션 Key에 적절한 도구들과 함께 빠른 Key-Value로 사용 가능한 세션 관리, Redis Sorted Set 데이터 구조를 사용한 실시간 순위표, API Key에 연결된 Redis 카운터를 사용한 특정 기간 및 시간 동안 액세스를 요청하는 속도 제한, Redis Lists 데이터 구조를 통하여 자동 작업 및 차단 기능을 활용한 대기열, Redis의 PUB/SUB(발행/구독)을 사용하여 작업을 트리거하는 채팅 및 메시징 등에 활용한다.

 

 

 

 * In-Memory : 데이터를 디스크가 아닌 RAM에 저장하는 방식

 * Snap-Shot : 종종 임시 자료를 다루는 수단 또는 특정 시간의 자료를 백업하기 위한 DBMS에서 사용

 * Master-Slave : 다중 처리기 시스템에서 주된 처리기가 다른 처리기에 작업을 할당하고 그 처리 단계를 스케줄링하는 방식

728x90
반응형