분산이란 비즈니스 시스템을 분할하는 것을 의미합니다. 즉, 각 분산 노드가 서로 다른 기능을 구현합니다.
클러스터는 단일 서비스 엔터티보다 확장성과 가용성이 뛰어난 서비스 플랫폼을 제공하기 위해 함께 작동하는 서비스 엔터티 그룹입니다. (추천 학습: Redis 동영상 튜토리얼 )
간단히 말하면, 분산은 단일 작업의 실행 시간을 단축하여 효율성을 향상시킵니다. 단위 시간당 실행되는 작업 수를 늘려 효율성을 향상시킵니다.
Redis 클러스터 클러스터 모드는 일반적으로 고가용성, 확장성, 분산, 내결함성 등의 특성을 갖습니다. 일반적으로 Redis 분산 솔루션에는 두 가지 유형이 있습니다.
클라이언트 파티션 구성표
클라이언트는 데이터를 저장할 Redis 노드를 이미 결정했습니다. 또는 데이터를 읽을 redis 노드입니다. 주요 아이디어는 해시 알고리즘을 사용하여 Redis 데이터의 키를 해시하는 것입니다. 해시 함수를 통해 특정 키가 특정 Redis 노드에 매핑됩니다.
클라이언트 파티셔닝 방식의 대표적인 것이 Redis Sharding입니다. Redis Sharding은 Redis Cluster가 나오기 전에 업계에서 일반적으로 사용되었던 Redis 다중 인스턴스 클러스터 방식입니다. Java의 Redis 클라이언트 드라이버 라이브러리 Jedis는 Redis 샤딩 기능, 즉 캐시 풀과 결합된 ShardedJedis 및 ShardedJedisPool을 지원합니다.
Advantages
타사 미들웨어가 사용되지 않고 파티션 로직을 제어할 수 있으며 구성이 간단하고 노드 간 상관 관계가 없습니다. , 선형적으로 확장하기 쉽습니다.
Disadvantages
클라이언트는 배포 로직을 자체적으로 유지해야 합니다. 클라이언트 간 공유로 인해 연결 낭비가 발생합니다.
프록시 파티셔닝 체계
클라이언트는 프록시 구성 요소에 요청을 보내고, 프록시는 클라이언트의 데이터를 구문 분석하여 해당 요청을 노드를 수정하고 마지막으로 결과를 클라이언트에 응답합니다.
장점: 단순화된 클라이언트 분산 논리, 투명한 클라이언트 액세스, 낮은 전환 비용, 프록시 전달 및 저장 분리. 단점: 추가 프록시 계층이 있어 아키텍처 배포의 복잡성과 성능 손실이 증가합니다.
프록시 파티셔닝을 위한 주류 구현 솔루션에는 Twemproxy와 Codis가 있습니다.
Twemproxy
Twemproxy는 nutcraker라고도 불리며 트위터에서 오픈 소스로 제공되는 Redis 및 Memcache용 중간 프록시 서버 프로그램입니다. 프록시로서 Twemproxy는 여러 프로그램의 액세스를 허용하고 이를 라우팅 규칙에 따라 백그라운드에서 다양한 Redis 서버로 전달한 다음 원래 경로로 돌아갈 수 있습니다. Twemproxy에는 단일 실패 지점 문제가 있으며 고가용성 솔루션을 만들려면 Lvs 및 Keepalived와 결합해야 합니다.
장점: 넓은 적용 범위, 높은 안정성, 중간 프록시 레이어의 높은 가용성. 단점: 원활한 수평 확장/축소 불가능, 시각적 관리 인터페이스 없음, 비우호적인 운영 및 유지 관리, 자동 전송 실패.
Codis
Codis는 분산 Redis 솔루션입니다. Codis-Proxy를 연결하고 기본 Redis 서버에 직접 연결하세요. 차이가 없습니다. Codis의 하위 계층은 요청 전달을 처리하고 가동 중지 시간 없이 데이터 마이그레이션 및 기타 작업을 수행합니다. Codis는 상태 비저장 프록시 레이어를 사용하며 모든 것이 클라이언트에게 투명합니다.
Advantages
상위 프록시와 기본 Redis의 고가용성, 데이터 샤딩 및 자동 밸런싱을 구현하고 명령줄 인터페이스와 RESTful을 제공합니다. Redis 노드를 동적으로 추가하고 삭제할 수 있는 모니터링 및 관리 인터페이스를 제공하는 API입니다.
단점
배포 아키텍처 및 구성이 복잡하고 기계실 간 및 다중 테넌트를 지원하지 않으며, 인증 관리를 지원합니다.
Redis 관련 기술 기사를 더 보려면 Redis 데이터베이스 사용 튜토리얼 열을 방문하여 알아보세요!
위 내용은 Redis 클러스터와 분산의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!