Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan sharding data dalam MongoDB menggunakan PHP

Bagaimana untuk melaksanakan sharding data dalam MongoDB menggunakan PHP

WBOY
WBOYasal
2023-07-08 18:01:431437semak imbas

Cara melaksanakan pemecahan data dalam MongoDB menggunakan PHP

Ikhtisar:
Apabila memproses data berskala besar, fungsi pemecahan data MongoDB boleh membantu kami mengurus dan menyimpan data dengan berkesan. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menulis kod untuk melaksanakan pembahagian data MongoDB.

Apakah pemecahan data MongoDB?
Pecahan data MongoDB merujuk kepada proses menyimpan data secara berselerak pada nod fizikal yang berbeza Ia boleh memberikan kami pengimbangan beban data yang lebih baik dan keupayaan pengembangan mendatar.

Dayakan pemecahan data MongoDB:
Untuk mendayakan fungsi pemecahan data MongoDB, kita perlu melakukan langkah berikut.

Langkah 1: Dayakan pelayan konfigurasi
Ciri perkongsian data memerlukan pelayan konfigurasi untuk menyimpan dan mendapatkan semula metadata kelompok. Mula-mula kita perlu memulakan contoh pelayan konfigurasi.

Jalankan arahan berikut dalam terminal untuk memulakan pelayan konfigurasi:

mongod --configsvr --replSet configReplSet --port 27019

Arahan ini akan memulakan contoh pelayan konfigurasi dengan nombor port 27019 yang ditentukan. Anda boleh menyesuaikannya mengikut keperluan.

Langkah 2: Mulakan pelayan sharding data
Seterusnya, kita perlu memulakan satu atau lebih pelayan sharding data dan menambahkannya pada kelompok.

Jalankan arahan berikut dalam terminal untuk memulakan pelayan shard data:

mongod --shardsvr --replSet shardReplSet --port 27018

Perintah ini akan memulakan contoh pelayan shard data dan menentukan nombor port 27018. Anda boleh menyesuaikannya mengikut keperluan.

Ulang langkah ini untuk memulakan lebih banyak pelayan serpihan data.

Langkah Tiga: Konfigurasi Set Replika
Buat set replika pada pelayan konfigurasi dan pelayan serpihan data. Dalam contoh ini, kami akan mencipta set replika untuk pelayan konfigurasi dan set replika untuk pelayan shard data.

Jalankan arahan berikut dalam terminal untuk mencipta set replika pelayan konfigurasi:

mongo --port 27019

Kemudian laksanakan arahan berikut:

config = { _id: "configReplSet", members: [ { _id : 0, host : "localhost:27019" } ] }
rs.initiate(config)

Jalankan arahan berikut dalam terminal untuk mencipta set replika pelayan serpihan data:

mongo --port 27018

Kemudian laksanakan arahan berikut :

config = { _id: "shardReplSet", members: [ { _id : 0, host : "localhost:27018" } ] }
rs.initiate(config)

Ulang langkah ini untuk mengkonfigurasi lebih banyak pelayan serpihan data.

Langkah 4: Mulakan penghalaan mongos
Penghalaan Mongos ialah antara muka untuk berinteraksi dengan aplikasi. Kita perlu memulakan proses mongos untuk menyambung ke pelayan konfigurasi dan menghalakan permintaan data ke pelayan shard data yang sesuai.

Jalankan arahan berikut dalam terminal untuk memulakan penghalaan mongos:

mongos --configdb "configReplSet/localhost:27019" --port 27017

Arahan ini akan memulakan proses mongos dan menyambung ke pelayan konfigurasi. Kami telah menentukan nombor port 27017 di sini. Anda boleh menyesuaikannya mengikut keperluan.

Melaksanakan sharding data dalam PHP:
Untuk melaksanakan sharding data MongoDB dalam PHP, kita perlu menyambung ke gugusan sharding melalui sambungan PHP MongoDB dan melaksanakan operasi.

Pertama, kita perlu memasang dan mendayakan sambungan PHP MongoDB. Anda boleh memasangnya dengan arahan berikut:

pecl install mongodb

Kemudian gunakan kod berikut dalam fail PHP untuk menyambung ke gugusan sharded:

<?php
$manager = new MongoDBDriverManager("mongodb://localhost:27017");

Dalam kod ini, kami mencipta contoh pengurus menggunakan rentetan sambungan mongodb://localhost:27017. Anda boleh melaraskan nombor hos dan port mengikut keperluan.

Seterusnya, kami boleh melakukan operasi seperti memasukkan, bertanya, mengemas kini atau memadam dokumen. Berikut ialah beberapa contoh kod:

Masukkan dokumen:

<?php
$bulk = new MongoDBDriverBulkWrite;
$document = ['name' => 'John Doe', 'age' => 25];
$bulk->insert($document);

// 指定分片键
$bulk->selectShardKey(['_id' => 1]);

$manager->executeBulkWrite('database.collection', $bulk);

Dokumen pertanyaan:

<?php
$filter = ['age' => ['$gt' => 20]]; // 查询年龄大于20的文档
$options = [];

$query = new MongoDBDriverQuery($filter, $options);

// 指定分片键
$query->selectShardKey(['_id' => 1]);

$cursor = $manager->executeQuery('database.collection', $query);

Kemas kini dokumen:

<?php
$bulk = new MongoDBDriverBulkWrite;
$filter = ['name' => 'John Doe']; // 更新名为John Doe的文档
$update = ['$set' => ['age' => 30]]; // 更新年龄为30

$bulk->update($filter, $update);

// 指定分片键
$bulk->selectShardKey(['_id' => 1]);

$manager->executeBulkWrite('database.collection', $bulk);

Padam dokumen:

<?php
$bulk = new MongoDBDriverBulkWrite;
$filter = ['name' => 'John Doe']; // 删除名为John Doe的文档

$bulk->delete($filter);

// 指定分片键
$bulk->selectShardKey(['_id' => 1]);

$manager->executeBulkWrite('database.collection', $bulk);

Ringkasan:
Gunakan data shark dan kod MoningDB untuk saya uruskan dengan mudah data berskala besar yang disimpan. Dengan mengkonfigurasi kluster sharded dalam PHP, dan menggunakan sambungan PHP MongoDB, kami boleh menyambung dengan mudah ke kluster sharded dan melakukan pelbagai operasi.

Di atas ialah pengenalan ringkas dan kod contoh untuk melaksanakan pembahagian data dalam MongoDB menggunakan PHP. Harap ini membantu.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan sharding data dalam MongoDB menggunakan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn