현대 웹 애플리케이션에서 데이터 처리 및 관리는 중요한 작업입니다. 웹 애플리케이션이 점점 더 복잡해지고 막대한 양의 데이터를 처리해야 함에 따라 이 데이터를 저장하고 처리하기 위해 점점 더 많은 데이터베이스가 필요합니다.
MongoDB는 웹 애플리케이션에서 널리 사용되는 NoSQL 데이터베이스입니다. MySQL과 같은 관계형 데이터베이스와 달리 MongoDB는 테이블이 아닌 문서를 사용하여 데이터를 저장하므로 MongoDB는 대량의 데이터를 처리하는 데 이상적입니다. 또한 MongoDB는 여러 인스턴스 간의 마스터-슬레이브 복제 애플리케이션에 필요한 여러 애플리케이션에 대한 고가용성과 확장성을 제공합니다.
이 글에서는 PHP를 사용하여 MongoDB 마스터-슬레이브 복제 애플리케이션을 작성하는 방법을 소개합니다.
MongoDB 마스터-슬레이브 복제 개요
MongoDB 마스터-슬레이브 복제는 여러 MongoDB 인스턴스 간에 복사본을 생성하여 오류나 성능 문제가 발생하는 경우에도 애플리케이션이 정상적으로 실행될 수 있도록 하는 것입니다. 마스터 인스턴스는 모든 쓰기 요청을 받은 다음 이를 읽기 요청만 받는 각 슬레이브 인스턴스에 복제합니다.
마스터-슬레이브 복제의 장점
MongoDB 마스터-슬레이브 복제 원칙
MongoDB 마스터-슬레이브 복제에서는 마스터 인스턴스가 생성되고 모든 쓰기 요청이 이 인스턴스로 전송됩니다. 쓰기 작업이 성공하면 먼저 마스터 인스턴스의 작업 로그에 쓰기 작업 기록이 저장된 후, 해당 작업이 다른 인스턴스에 복사될 수 있도록 각 슬레이브 인스턴스에 작업이 전송됩니다. 또한 슬레이브 인스턴스는 마스터 인스턴스의 데이터를 주기적으로 동기화할 수도 있습니다.
각 MongoDB 슬레이브 인스턴스에서 복제된 데이터는 읽기 요청에 사용될 수 있으며, 복제본은 마스터 인스턴스에 직접 쿼리하지 않고도 이러한 요청을 처리할 수 있습니다. 또한 마스터 인스턴스를 선택하기 위해 슬레이브 인스턴스에서 선택 메커니즘을 활성화할 수 있습니다.
MongoDB 마스터-슬레이브 복제 구성
MongoDB 마스터-슬레이브 복제를 사용하려면 마스터 인스턴스와 슬레이브 인스턴스를 생성하고 이들 간의 연결을 설정하는 등 몇 가지 준비 작업이 필요합니다. MongoDB 마스터-슬레이브 복제의 기본 구성은 다음과 같습니다.
MongoDB 인스턴스를 생성하려면 mongod 명령을 사용하면 됩니다. 마스터 인스턴스를 생성할 때 다음 명령을 사용할 수 있습니다.
mongod --replSet rs0
이 명령은 마스터 인스턴스와 두 개의 슬레이브 인스턴스를 포함하는 "rs0"이라는 복제본 세트를 생성합니다.
슬레이브 인스턴스를 생성하려면 일반적으로 mongod 인스턴스를 시작해야 합니다.
mongod --port 27027
이 명령을 사용하여 28027이라는 MongoDB 인스턴스를 생성하고 슬레이브로 표시합니다. 사례.
마스터 인스턴스를 구성하려면 mongo 명령줄 도구를 사용하여 명령줄에 다음 명령을 입력하세요.
rs.initiate()
이렇게 하면 복제본 세트가 초기화됩니다. 마스터 인스턴스가 됩니다.
슬레이브 인스턴스 구성 시 마스터 인스턴스에 연결하려면 MongoDB 인스턴스의 IP 주소와 포트를 지정해야 합니다. 다음은 슬레이브 인스턴스를 구성하는 구문 예시입니다.
rs.add("192.168.1.2:28027")
이렇게 하면 28027이라는 MongoDB 인스턴스가 복제본 세트의 일부로 마스터 인스턴스에 추가됩니다.
MongoDB 마스터-슬레이브 복제 구현
PHP에서 MongoDB 마스터-슬레이브 복제를 구현하려면 MongoDB PHP 드라이버와 MongoDB PHP 확장을 사용해야 합니다. 다음은 MongoDB 마스터-슬레이브 복제를 구현하는 단계입니다.
PHP에서 MongoDB 데이터베이스에 연결하려면 MongoDB PHP 확장을 사용해야 합니다. 다음은 MongoDB 데이터베이스에 연결하기 위한 샘플 코드입니다.
$manager = new MongoDBDriverManager("mongodb://localhost:27017");
?>
이 코드 조각을 사용하여 MongoDB를 초기화합니다. PHP 드라이버 그리고 서버 애플리케이션의 호스트와 포트로 "mongodb://localhost:27017"을 사용합니다.
MongoDB 마스터-슬레이브 복제 상태를 가져오려면 MongoDB PHP 확장에서 제공하는 방법을 사용해야 합니다. 다음은 마스터-슬레이브 상태를 가져오는 샘플 코드입니다.
$command = new MongoDBDriverCommand(['replSetGetStatus' => 1]);
$cursor = $manager->executeCommand(' admin', $ command);
$status = $cursor->toArray()[0];
var_dump($status);
?>
이 코드 조각을 사용하여 현재 마스터-슬레이브 상태를 확인하세요. 몽고DB 데이터베이스. 레플리카 세트의 모든 슬레이브 인스턴스가 업데이트되면 모든 슬레이브 인스턴스는 동일한 레플리카 상태를 가져야 하며 마스터 인스턴스의 상태는 모든 슬레이브 인스턴스보다 먼저 업데이트되어야 합니다.
PHP에서 MongoDB 마스터-슬레이브 복제의 읽기 기본 설정을 설정하려면 MongoDB PHP 확장에서 제공하는 방법을 사용할 수 있습니다. 코드에서 읽기 기본 설정을 지정하는 예는 다음과 같습니다.
$readPreference = new MongoDBDriverReadPreference(MongoDBDriverReadPreference::RP_NEAREST);
$options = [
'readPreference' => query = new MongoDBDriverQuery([], $options);
$cursor = $manager->executeQuery('mydb.mycollection', $query);
?>
이 코드 조각을 사용하여 MongoDB 마스터-슬레이브 복제에서 읽기 기본 설정을 지정하세요. 이 예에서는 최근 읽기 읽기 기본 설정 옵션이 MongoDBDriverReadPreference::RP_NEAREST를 사용하여 설정됩니다.
PHP에서 MongoDB 마스터-슬레이브 복제 작업을 완료하려면 MongoDB PHP 확장에서 제공하는 방법을 사용해야 합니다. 다음은 MongoDB 마스터-슬레이브 복제에서 삽입 작업을 사용하기 위한 샘플 코드입니다:
$bulk = new MongoDBDriverBulkWrite;
$bulk->insert(['_id' => 1, 'name' => ; 'John Doe']);
$manager->executeBulkWrite('mydb.mycollection', $bulk);
?>
이 코드 조각을 사용하면 MongoDB 마스터 인스턴스에 삽입을 수행하고 슬레이브 인스턴스를 사용하여 동기화합니다.
결론
MongoDB 마스터-슬레이브 복제는 확장성, 내결함성, 탄력성과 같은 일련의 중요한 기능을 제공하며 최신 웹 애플리케이션의 필수 부분입니다. MongoDB PHP 확장과 PHP의 MongoDB PHP 드라이버를 사용하면 MongoDB 마스터-슬레이브 복제를 쉽게 구현할 수 있으며 이 구현 방법은 매우 안정적이고 관리하기 쉽습니다. 전체적으로, 애플리케이션의 원활한 실행을 보장하고 가용성을 향상시키기 위해 PHP로 MongoDB 마스터-슬레이브 복제 애플리케이션을 작성하는 것이 매우 중요합니다.
위 내용은 PHP에서 MongoDB 데이터베이스의 마스터-슬레이브 복제를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!