redis는 분산 데이터베이스 CAP의 원칙을 도입합니다.

coldplay.xixi
풀어 주다: 2021-02-25 10:02:09
앞으로
3169명이 탐색했습니다.

redis는 분산 데이터베이스 CAP의 원칙을 도입합니다.

추천(무료): redis

기존 ACID란 무엇인가요? D(내구성) 지속성

관계형 데이터베이스는 ACID 규칙을 따릅니다.


1. A(원자성) 원자성

  원자는 이해하기 쉽습니다. 즉, 트랜잭션의 모든 작업은 완료되거나 완료되지 않습니다. 트랜잭션은 트랜잭션의 모든 작업이 성공하면 전체 트랜잭션이 실패하므로 롤백해야 합니다. 예를 들어, A 계좌에서 B 계좌로 100위안을 이체하는 은행 이체는 1) A 계좌에서 100위안을 인출하고, 2) B 계좌에 100위안을 입금하는 두 단계로 나누어집니다. 이 두 단계를 함께 완료하거나 함께 완료하지 않거나 첫 번째 단계만 완료하고 두 번째 단계가 실패하면 아무 이유 없이 돈이 100위안 줄어듭니다.

2.C(일관성) 일관성

  일관성은 비교적 이해하기 쉽습니다. 이는

데이터베이스가 항상 일관된 상태에 있어야 하며 트랜잭션 작업이 원래 일관성 제약 조건을 변경하지 않음을 의미합니다. 데이터베이스 .

3. I(격리) 독립성

 소위 독립성은 한 트랜잭션에서 액세스할 데이터가 다른 트랜잭션에 의해 수정되는 경우 동시 트랜잭션이 서로 영향을 미치지 않음을 의미합니다. 트랜잭션 트랜잭션이 커밋되지 않은 경우 액세스하는 데이터는 커밋되지 않은 트랜잭션의 영향을 받지 않습니다. 예를 들어 A계좌에서 B계좌로 100위안을 이체하는 거래가 있습니다. 아직 거래가 완료되지 않은 상태에서 B가 이때 자신의 계좌를 확인하면 새로 추가된 100위안4, D가 보이지 않습니다. (내구성) 내구성

내구성은 일단 트랜잭션이 제출되면 수정 사항이 데이터베이스에 영구적으로 저장되며

다운타임이 발생하더라도 손실되지 않음을 의미합니다.

CAP

C: Consistency(strong Consistency) A: Availability(가용성) P: Partition Tolerance(파티션 허용오차) 또는 Distributed Tolerance

CAP 이론은 분산 스토리지 시스템에서 기껏해야 위의 두 가지 점만 달성하세요. 강력한 일관성: 예를 들어 데이터에 있는 내용은 그대로입니다. 분산 시스템의 모든 데이터 백업은 동시에 동일한 값을 갖습니다

. (동일한 최신 데이터 사본에 액세스하는 모든 노드와 동일)

가용성: 예를 들어 Taobao Double Eleven을 사용하지 않는 것은 불가능합니다. 클러스터의 일부 노드가 실패한 후에도 전체 클러스터가 여전히 클라이언트의 읽기 및 쓰기 요청에 응답할 수 있나요. (데이터 업데이트를 위한 고가용성)

파티션 내결함성: 실질적으로 파티셔닝은 통신에 대한 시간 제한 요구 사항과 동일합니다.

시스템이 제한 시간 내에 데이터 일관성을 달성하지 못하면 파티션이 발생했음을 의미하며 현재 작업에 대해 C와 A 중에서 선택해야 합니다.
예: Taobao 가방
강력한 일관성을 위해 이 가방에 대한 좋아요 수가 141개가 되어야 하며 이는 틀리지 않아야 합니다. 정확한 안내가 필요하지만, 동시성이 높은 시대에는 데이터의 균일성을 확보하기 어렵습니다
고가용성을 위해: 좋아요 수, 조회수 오류를 허용하는 등 약한 일관성은 있을 수 있지만 웹 사이트 마비를 일으킬 수는 없습니다.
그래서 대부분의 웹사이트 아키텍처는 AP를 사용합니다. 약한 일관성 + 고가용성
Nosql의 경우 파티션 허용을 달성해야 합니다
. 분산 시스템은 Taobao와 같은 도시에 있지 않을 수 있지만 콘텐츠 배포는 가장 가깝습니다. Taobao 서버는 항저우, 상하이, 쑤저우에 서버가 있을 수 있습니다. 현재 네트워크 하드웨어에는 지연, 패킷 손실 등의 문제가 분명히 있을 것이기 때문에 따라서 파티션 허용 오차를 달성해야 합니다. 따라서 일관성과 가용성 사이에서만 균형을 이룰 수 있습니다. NoSQL 시스템은 이 세 가지 사항을 동시에 보장할 수 없습니다
. CA 기존 Oracle 데이터베이스
대부분의 웹 사이트 아키텍처에 대한 AP 선택
CP Redis, Mongodb
참고: 분산 아키텍처에서는 절충이 이루어져야 합니다.

일관성과 유용성 사이의 균형을 유지하세요. 대부분의 웹 애플리케이션에는 실제로 강력한 일관성이 필요하지 않습니다. 따라서 P를 위해 C를 희생하는 것이 분산 데이터베이스 제품의 현재 방향입니다.

일관성과 가용성 사이의 선택
 web2.0 웹사이트의 경우 관계형 데이터베이스의 많은 주요 기능이 쓸모없는 경우가 많습니다.
데이터베이스 트랜잭션 일관성 요구 사항
 많은 웹 실시간 시스템에는 엄격한 데이터베이스 트랜잭션이 필요하지 않습니다. 읽기 일관성에 대한 요구 사항은 매우 낮으며 경우에 따라 쓰기 일관성에 대한 요구 사항이 높지 않습니다. 최종 일관성을 허용합니다.
데이터베이스의 실시간 쓰기 및 읽기 요구 사항
 관계형 데이터베이스의 경우 데이터 조각을 삽입하고 즉시 쿼리하면 확실히 데이터를 읽을 수 있지만 많은 웹 응용 프로그램의 경우 요구 사항이 그다지 높지 않습니다. 예를 들어, 웨이보에 메시지를 게시한 후 내 구독자가 몇 초 또는 심지어 10초 후에 뉴스를 보는 것은 전적으로 허용됩니다.
복잡한 SQL 쿼리, 특히 다중 테이블 관련 쿼리 수요
  많은 양의 데이터를 가지고 있는 웹 시스템이라면 여러 대형 테이블의 관련 쿼리는 물론, 복잡한 데이터 분석형 리포트 쿼리, 특히 SNS 이런 유형은 매우 금기시됩니다. 웹사이트는 수요와 제품 디자인 측면에서 이러한 상황을 피하고 있습니다. 단일 테이블에 대한 기본 키 쿼리와 단일 테이블에 대한 단순 조건부 페이징 쿼리만 있는 경우가 많습니다.

클래식 CAP 다이어그램

CAP 이론의 핵심은 분산 시스템이 일관성, 가용성 및 파티션 내결함성의 세 가지 요구 사항을 동시에 충족할 수 없다는 것입니다. 동시에 두 가지만 잘 충족할 수 있습니다. .
따라서 CAP 원칙에 따라 NoSQL 데이터베이스는 CA 원칙 충족, CP 원칙 충족, AP 원칙 충족의 세 가지 범주로 나뉩니다.

CA - 단일 지점 클러스터, 일관성과 가용성을 충족하는 시스템, 일반적으로 확장성이 너무 강력합니다.
CP - 일관성을 충족하고 파티션을 허용해야 하지만 일반적으로 성능이 특별히 뛰어나지는 않은 시스템입니다.
AP - 가용성, 파티션 허용 오차를 충족하고 일반적으로 일관성 요구 사항이 더 낮을 수 있는 시스템입니다.
redis는 분산 데이터베이스 CAP의 원칙을 도입합니다.

BASE

BASE는 관계형 데이터베이스의 Strong Consistency로 인해 발생하는 가용성 저하 문제를 해결하기 위해 제안된 솔루션입니다.

 BASE는 실제로 다음 세 가지 용어의 약어입니다.

 기본적으로 사용 가능
 소프트 상태
 결국 일관성
시스템이 전반적인 개선을 대가로 특정 순간 요구 사항에 대한 데이터 일관성 요구 사항을 완화할 수 있도록 하는 것입니다. 시스템의 확장성과 성능. 이렇게 말하는 이유는 지리적 분포와 매우 높은 성능 요구 사항으로 인해 대규모 시스템이 분산 트랜잭션을 사용하여 이러한 지표를 완료할 수 없는 경우가 많기 때문입니다. 이 문제에 대한 해결책

분산 + 클러스터 소개

분산 시스템(분산 시스템)
은 컴퓨터 네트워크(로컬 네트워크 또는 광역 네트워크)를 통해 연결된 여러 컴퓨터와 통신 소프트웨어 구성 요소로 구성됩니다. 분산 시스템은 네트워크에 구축된 소프트웨어 시스템입니다. 분산 시스템이 높은 응집력과 투명성을 갖는 것은 바로 소프트웨어의 특성 때문입니다. 따라서 네트워크와 분산 시스템의 차이점은 하드웨어보다는 고급 소프트웨어(특히 운영 체제)에 더 많이 있습니다. 분산 시스템은 PC, 워크스테이션, LAN 및 WAN 등과 같은 다양한 플랫폼에 적용될 수 있습니다.
간단히 말하면:
분산형: 다양한 서비스 모듈(프로젝트)이 여러 서버에 배포됩니다. RPC/RMI를 통해 통신하고 호출하여 외부 서비스를 제공하고 그룹 내에서 협업합니다.
클러스터: 동일한 서비스 모듈이 여러 개의 서로 다른 서버에 배포되고, 분산된 스케줄링 소프트웨어를 통해 통합된 스케줄링이 수행되어 외부 서비스 및 액세스를 제공합니다.

위 내용은 redis는 분산 데이터베이스 CAP의 원칙을 도입합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿