Database/Redis

Database/Redis

[Redis] 인메모리 데이터베이스

인메모리 데이터베이스인메모리 데이터베이스(In-Memory Database)는 말 그대로 주 메모리(RAM)를 주된 저장 매체로 사용하는 데이터베이스를 의미함.전통적인 디스크 기반 데이터베이스가 디스크 I/O에 의존하는 것과 달리, 인메모리 DB는 대부분 또는 전부의 데이터를 메인 메모리에 상주시킴으로써 훨씬 빠른 읽기/쓰기 성능을 제공함.최근에는 메모리 용량과 비용의 변화, 고성능 컴퓨팅(HPC)과 실시간 분석에 대한 요구 등으로 인메모리 DB 기술이 빠르게 발전하고 있으며, 다양한 상용·오픈소스 솔루션들이 시장에서 활발히 사용되고 있음. 인메모리 데이터베이스의 정의와 배경1. 정의인메모리 데이터베이스(In-Memory Database, IMDB)는 모든(또는 주요) 데이터를 휘발성 메모리(RAM)에 ..

Database/Redis

[Redis] 레디스 클러스터

레디스 클러스터Redis Cluster는 여러 개의 Redis 노드로 이루어진 분산 구성(distributed setup)임.자동 샤딩(Sharding)과 고가용성(High Availability)을 제공하는 기술임.단일 인스턴스에서 처리할 수 있는 데이터나 트래픽 규모를 넘어서는 상황에서, 여러 노드로 부하를 분산하고 노드 장애 시 빠르게 복구할 수 있도록 설계됨.즉, 확장성과 가용성이라는 Redis의 핵심 요구 사항을 충족하기 위한 솔루션이라고 할 수 있음. 레디스 클러스터의 주요 개념1. 샤딩(Sharding)Redis Cluster는 키(key) 기반으로 데이터를 여러 노드에 분산하여 저장함.Hash Slot: Redis Cluster는 키를 0부터 16383까지의 해시 슬롯(Hash Slot)에..

Database/Redis

[Redis] 레디스의 보안

레디스의 보안Redis(레디스)는 기본적으로 빠른 인메모리 데이터 처리에 초점을 맞춘 소프트웨어이임.최근에는 엔터프라이즈급 사용 사례가 늘어나면서 보안(Security) 요구사항도 크게 중요해졌음.Redis 자체가 초기 버전에는 간단한 패스워드 인증만 제공했으나, 버전 6.0 이후로는 ACL(Access Control List) 같은 고급 기능을 도입하여 보안 수준을 한층 높임.그럼에도 불구하고 운영 환경에서 Redis를 안전하게 사용하기 위해서는, Redis 자체 설정뿐만 아니라 네트워크 및 시스템 레벨에서의 여러 보안 전략이 필요함. 기본 보안 전제: 레디스는 신뢰할 수 없는 네트워크에 직접 노출하지 않아야 함Redis 공식 문서에서는 기본적으로 ‘Redis를 퍼블릭 인터넷에 직접 노출하지 말라’고 ..

Database/Redis

[Redis] 메세지 브로커

메세지 브로커메시지 브로커(Message Broker)는 분산된 애플리케이션 간 데이터를 교환(통신)하기 위한 중간 매개체 역할을 하는 소프트웨어 시스템임.메시지를 송신하려는 프로듀서(Producer)와 메시지를 수신하려는 컨슈머(Consumer) 사이에서 메시지를 안정적으로 주고받을 수 있도록 관리하고, 메시지를 큐(Queue), 토픽(Topic), 스트림(Stream) 형태로 전달/보관/라우팅해줌. 메세지 브로커의 필요성1. 애플리케이션 간 결합도(Dependency) 감소메시지 브로커를 사용하면, 애플리케이션들이 서로 직접 통신하는 대신 브로커를 통해 간접적으로 통신함.이를 통해 애플리케이션 간의 결합도를 낮추고, 각 애플리케이션을 독립적으로 배포·확장·변경할 수 있는 유연성을 확보할 수 있음. 2..

Database/Redis

[Redis] 레디스의 장점

레디스의 장점Redis(REmote DIctionary Server)는 인메모리(In-Memory) 데이터 구조 저장소임.주로 캐시, 메시지 브로커, 세션 저장소, 실시간 분석 등의 다양한 용도로 활용되는 오픈 소스 소프트웨어임.높은 성능과 다양한 자료구조를 지원하는 특징 덕분에 전 세계적으로 널리 사용되고 있음. 인메모리 기반의 높은 성능1. 초당 수십~수백만 건의 요청 처리Redis는 모든 데이터를 메모리에 상주시키고, 네트워크 IO와 CPU 효율을 극대화한 아키텍처를 통해 매우 빠른 응답 속도를 제공함.대부분의 명령에 대해 O(1) 혹은 O(log n) 정도의 시간 복잡도를 갖도록 자료구조를 최적화함.이로 인해 초당 수십~수백만 건의 요청(QPS, TPS)을 처리할 수 있으며, 특히 낮은 지연 시간..

Database/Redis

[Redis] brew install redis 설치 방법

설치 명령어brew install redis Redis 실행brew services start redis Redis 정지brew services stop redis Redis 재실행brew services restart redis

Database/Redis

[Redis] 정의, 인메모리 데이터베이스

RedisRedis는 고성능 키-값 저장소임.메모리 내 데이터 구조 저장소로서 주로 사용됨.Redis는 다양한 데이터 구조를 지원하며, 네트워크를 통해 데이터에 빠르게 접근할 수 있게 설계되어 있음.주로 캐시, 메시지 브로커, 큐, 세션 스토어 등으로 사용됨. Redis의 주요 특징1. 메모리 기반Redis는 모든 데이터를 메모리에 저장하고 접근함.이는 디스크 기반의 데이터베이스보다 훨씬 빠른 읽기 및 쓰기 속도를 가능하게 함. 2. 데이터 구조Redis는 단순한 키-값 쌍 이상을 지원함.리스트, 세트, 해시, 정렬된 세트, 비트맵, 하이퍼로그로그, 지오스페이셜 인덱스 등 다양한 데이터 구조를 내장함. 3. 지속성Redis는 두 가지 방법(RDB, AOF)을 통해 메모리 내 데이터를 디스크에 지속적으로 ..

Database/Redis

[Redis] 레디스를 사용하는 이유

레디스를 사용하는 이유 레디스(Redis)는 오픈 소스인 인 메모리 데이터 구조 저장소로서, 다양한 용도로 사용되는 데이터베이스입니다. 레디스의 주요 목표는 높은 성능과 확장성을 제공하는 것입니다. 이를 위해 데이터를 주 메모리에 저장하여 빠른 응답 시간을 보장하며, 단일 서버뿐만 아니라 여러 서버 간 데이터 분산도 지원합니다. 레디스를 사용하는 이유는 다음과 같습니다: 1. 높은 성능: 레디스는 모든 데이터를 메모리에 저장하므로 디스크 I/O 오버헤드가 없습니다. 이로 인해 매우 빠른 읽기와 쓰기 작업을 수행할 수 있습니다. 또한 단일 쓰레드 모델을 사용하여 데이터베이스 작업을 순차적으로 처리하므로 복잡한 동시성 문제를 피할 수 있습니다. 2. 다양한 데이터 구조: 레디스는 단순한 키-값 구조 이상의 ..

Database/Redis

[Redis] 레디스의 장점

레디스의 장점 레디스(Redis)는 인메모리 데이터 스토어로서 많은 장점을 가지고 있습니다. 다음은 레디스의 주요 장점들입니다: 1. 뛰어난 성능: 레디스는 데이터를 주 메모리(RAM)에 저장하므로 매우 빠른 데이터 액세스 속도를 제공합니다. 따라서 레디스는 실시간 애플리케이션에서 매우 효율적이며 높은 처리량과 낮은 지연 시간을 요구하는 시나리오에 이상적입니다. 2. 간결한 인터페이스: 레디스는 간단하면서도 강력한 키-값 저장소 인터페이스를 제공합니다. 사용자는 데이터를 가져오기, 설정하기, 삭제하기 위해 간단한 명령어를 사용할 수 있습니다. 이러한 간결한 인터페이스는 개발자가 레디스를 사용하여 빠르고 쉽게 작업할 수 있도록 도와줍니다. 3. 다양한 데이터 구조 지원: 레디스는 단순한 키-값 저장소 이상..

Database/Redis

[Redis] cluster info 레디스 클러스터 전후 비교

클러스터 전 127.0.0.1:7001> cluster info cluster_state:fail cluster_slots_assigned:16384 cluster_slots_ok:5461 cluster_slots_pfail:10923 cluster_slots_fail:0 cluster_known_nodes:3 cluster_size:3 cluster_current_epoch:3 cluster_my_epoch:1 cluster_stats_messages_ping_sent:2 cluster_stats_messages_sent:2 cluster_stats_messages_received:0 total_cluster_links_buffer_limit_exceeded:0 클러스터 후 127.0.0.1:7001>..

박경태
'Database/Redis' 카테고리의 글 목록