请知悉:本文最近一次更新为 5年 前,文中内容可能已经过时。

写这个博客主要是,MongoDB比较奇葩,至少我们这生产环境呢,有三种驱动:mongo(低于1.3.0)、mongo(高于1.3.0 MongoClient)以及mongodb。

ReadPreference这玩意儿不设置呢,集群模式会出现读写都在主片的情况,流量大了会很坑。而这个设置,只支持后两个,MongoClient以及mongodb。

下面直接给出示例代码,剩下的自己研究:

mongo(高于1.3.0 MongoClient)setReadPreference示例代码:

$server = new MongoClient();
$db = $server->selectDB($db_name);
$db->setReadPreference(MongoClient::RP_SECONDARY);

相关参考链接:
https://www.php.net/manual/en/mongodb.setreadpreference.php

mongodb(未测试)setReadPreference示例代码:

$server = new MongoDBDriverManager($mongodbUrl, $options);
$readPreference = new MongoDBDriverReadPreference(MongoDBDriverReadPreference::RP_SECONDARY_PREFERRED);
$query = new MongoDBDriverQuery($filter, $options);
$rows = $server->executeQuery("{$db}.{$col}", $query, $readPreference);

相关参考链接:
https://stackoverflow.com/questions/44063872/php-mongodb-driver-check-connection
https://www.php.net/manual/en/mongodb-driver-manager.executequery.php


如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。

尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。


与《PHP MongoDB MongoClient 驱动ReadPreference设置方式》相关的博文:


留言

avatar
😀
😀😁😂😅😭🤭😋😘🤔😰😱🤪💪👍👎🤝🌹👌