写这个博客主要是,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
如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。
如本文对您有用,捐赠和留言 将是对我最好的支持~(捐赠可转为站内积分)
如愿意,请向朋友推荐本站,谢谢。
尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。