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

Bagaimana untuk melaksanakan sharding data dalam MongoDB menggunakan PHP

WBOY
Lepaskan: 2023-07-08 18:04:01
asal
1457 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

Kemudian laksanakan arahan berikut:

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

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

mongo --port 27018
Salin selepas log masuk

Kemudian laksanakan arahan berikut :

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

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
Salin selepas log masuk

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
Salin selepas log masuk

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

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

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);
Salin selepas log masuk

Dokumen pertanyaan:

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

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

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

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

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);
Salin selepas log masuk

Padam dokumen:

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

$bulk->delete($filter);

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

$manager->executeBulkWrite('database.collection', $bulk);
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan