PHP 驅動 MongoDB 的技巧
在php中使用mongodb你必須使用 mongodb 的 php驅動。以下就是小編精心介紹PHP 驅動 MongoDB 的技巧,希望對大家有幫助!
當與mongodb複製集建立連接時,驅動程序首先嚐試連接並驗證集羣中每個非 隱藏的節點。如果一個節點是“down”狀態,將跳過。
創建索引有時會阻塞新的連接
然而,如果一個節點是“UP”狀態,但是持有寫鎖,那麼驗證將沒法執行下去,因此該驅動程序將被掛起了。
在mongodb 2.6版本前,在建立索引時的通病。所有的在前台或後台創建索引,在secondary端將在前台創建。
在PHP驅動程序的1.5.3版本會有所改進,在創建索引時,允許驗證到second節點驗證。
減少is_master_interval值
對於對可用性要求高的應用程序來説,建議檢查默認的驅動程序運行時的配置設置。
_master_interval選項控制着在複製集重新選舉時驅動如何快速恢復。
is_master_interval選項默認值為15s,設置驅動發送“isMaster”請求每個mongod實例的時間間隔。這些請求幫助驅動程序判斷複製集的拓撲結構,具體的來説,就是請求檢測哪個節點是primary並可以接收寫操作。
建議將該值設置為1或2秒,以讓驅動程序在集羣選舉或故障轉移時,能夠迅速的定位到primary節點。當然啦,這也取決於有多少客户端以及ping的頻率。
注意,當primary節點發生變化時,如選舉或故障轉移,總是會有幾秒鐘驅動程序會收到一個“MongoConnectionException” 信息 “No candidate servers found”。這些異常需要在你的代碼中進行處理,否則會終止應用程序。
理解連接處理方式並配置連接TimeoutMS
PHP驅動程序不使用連接池。因此,建議你每個PHP進程創建一個連接。但是,如果web應用程序有許多PHP工作進程,將會創建很多新的數據庫連接,PHP驅動程序不能共享進程之間的連接。因此,當網絡節點慢,服務器繁忙時,PHP應用程序創建初始數據庫連接時特別容易受到阻礙。
在這種情況下,建議你自定義connectionTimeoutMS 選項和注意中的_interval選項。
connectionTimeoutMS
PHP驅動程序不顯示的定義一個默認的連接超時。相反,默認值由文件中的default_socket_timeout選項決定,默認是60秒。連接將等待60秒斷開,時間有些長,需要降低些。
強烈建議通過連接字符串的URI選項中顯示設置connectionTimeoutMS選項。將其設置為5到30秒之間的值。
_interval
_interval默認值為5秒。該選項設置驅動程序發送ping請求到每個mongod實例發現“down”節點的時間間隔,用於跟蹤驅動程序的服務器黑名單。告訴驅動程序哪些節點忽略。
-
PHP框架的概念
PHP框架為各種技術等級的開發者減少了重複編碼的需求、加快了開發進程,並在創建web應用時確保正確的編碼。下面是小編分享的PHP框架的概念,歡迎大家參考!PHP成為世界上最流行的腳本語言有許多原因:靈活性,易用性等等。但通常只用PHP或者其他語言編碼就會顯得單調、...
-
如何運用PHP實現字符串逆序排列
如何運用PHP實現字符串逆序排列呢?下面是小編給大家提供的實現方法,大家可以參考練習,更多詳情請關注應屆畢業生考試網。關於字符串的逆序排列,最簡單的使用PHP函數strrev()的測試代碼如下:header('Content-type:text/html;charset=utf-8');$str=implode(&...
-
php是什麼大綱
導讀:時至今日,仍有無以數計的童鞋出於各種渠道瞭解仍要來學習php,那麼對於新手來説,對php有一個清晰的認知則是很有必要的。Php是什麼?PHP是一種創建動態交互性站點的強有力的服務器端腳本語言。PHP是免費的,並且使用非常廣泛。同時,對於像微軟ASP這樣的競爭者來説,P...
-
PHP學習入門的一些基礎知識
導語:PHP是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。下面我們來看看PHP學習入門的一些基礎知識,希望對大家有所幫助。一,PHP腳本代碼標記PHP的腳本是文件中一對特殊標記所包括的內容,如ASP是“”,PHP可看...
相關文章
- DOS的Append、Debug、Diskcomp命令使用説明
- PEP六年級上冊《Unit1Howdoyougotoschool》知識點歸納
- WIndows 8可以支持Photoshop CS6和Lightroom 4
- 2015年大學英語四級寫作範文:Shopping through Media
- Adobe Photoshop Lightroom快速修圖十大技巧
- phpstorm配置Xdebug進行調試PHP教程
- MongoDB的PHP驅動方法與技巧大全
- How to be a good person英語作文
- My View on Job-hopping英語作文
- The importance of keep in a good mood英語作文