原创 Discuz!NT中的Redis架構設計

     在之前的Discuz!NT緩存的架構方案中,曾說過Discuz!NT採用了兩級緩存方式,即本地緩存+memcached 方式。在近半年多的實際 運行環境下,該方案經受住了檢驗。現在爲了提供多樣式的解決方案,我在企業版裏引入了Re

原创 Mongodb源碼分析--日誌及持久化

      在本系列的第一篇文章(主函數入口 ) 中,介紹了mongodb會在系統啓動同時,初始化了日誌持久化服務,該功能貌似是1.7版本後引入到系統中的,主要用於解決因系統宕機時,內存中的數據 未寫入磁盤而造成的數據丟失。其機制主要是通

原创 Mongodb源碼分析--Mongos

   MongoDB提供了auto-sharding 功能。因爲其是auto-sharding,即mongodb通過mongos(一個自動分片模塊,用於構建一個大規模的可擴展的數據庫集羣,這個集羣可 以併入動態增加的機器)自動建立一個水

原创 NET下RabbitMQ實踐[實戰篇]

     之前的文章中,介紹瞭如何將RabbitMQ以WCF方式進行發佈。今天就介紹一下我們產品中如何使用RabbitMQ的!          在Discuz!NT企業版中,提供了對HTTP錯誤日誌的記錄功能,這一點對企業版非常重要,另

原创 mongodb源碼分析--查詢

     在之前的一篇文章中,介紹了mongodb的主程序入口main()的執行流程,其實main只是實始化一些參數信息並做了些後臺線程任務的啓動工作(包 括數據準備和恢復),並最終啓動一個線程進行循環偵聽。今天將會介紹在mongodb

原创 Mongodb源碼分析--刪除記錄

    在之前的一篇文章 中,介紹了assembleResponse函數(位於instance.cpp第224行),它會根據op操作枚舉類型來調用相應的crud操作,枚舉類型定義如下:     enum Operations {

原创 Mongodb源碼分析--遊標Cursor

       在Mongodb中,其提供了類似關係型數據中cursor對象來遍歷數據集合,同時mongodb並要根據不同的場景生成不同的遊標對象 (cursor),比如順序遍歷遊標(basicCursor),反向遊標(reverseCu

原创 Mongodb源碼分析--插入記錄及索引B樹構建

>   在之前的一篇文章 中,介紹了assembleResponse函數(位於instance.cpp第224行),它會根據op操作枚舉類型來調用

原创 Mongodb源碼分析--Mongos之balancer(均衡)

   在之前的一篇文章中,介紹了mongos的啓動流程,在那篇文章的結尾,介紹了mongos使用balancer來進行均衡,今天就繼續講其實現方式。    首先我們看一下Balancer及相關實現策略的類圖:            可以看

原创 Mongodb源碼分析--內存文件映射(MMAP)

     在Mongodb中,其使用了操作系統底層提供的內存映射機制,即MMAP。MMAP可以把磁盤文件的一部分或全部內容直接映射到內存,這樣文件中的信息 位置就會在內存中有對應的地址空間,這時對文件的讀寫可以直接用指針來做,而不需要r

原创 Mongodb源碼分析--消息(message)

      在Mongodb中,客戶端和服務端進行通信是基於mongodb wire protocol 。說白了,該協議是一個簡單的基於socket,請求/響應方式的協議,客戶端使用常規的TCP/IP套接字(socket)進行通信。

原创 VS2010 C++下編譯調試MongoDB源碼

      考慮到mongodb使用了boost庫源碼,參考mongodb官方文檔後,下載編譯boost版本是1.42(時間爲2010-2-2)或更新版本:             boost版本1.42:      http://sou

原创 使用ServiceStackRedis鏈接Redis簡介

       注:關於如何在windows,linux下配置redis,詳見這篇文章 :)       目前網上有一些鏈接Redis的C#客戶端工具,這裏介紹其中也是目前我們企業版產品中所使用的ServiceStackRedis , 鏈

原创 當C++遇到IOS應用開發---字符串處理

     在Object-c中,字符串處理通常使用NSString,NSMutableString這兩個類,前者用於定長字符串,後者用於可變長度字符串的操作。儘量其提供的方法很豐富,但一用起來後就讓人感到很難受,比如其超長的方法名稱(如s

原创 HRPlugin For Xcode發佈(附源碼地址)

      今天介紹給大家介紹的這個插件,是我在IOS平臺上開發以來,一些想法的集合體。因爲本人時常感覺在開發過程中無論從GOOGLE資料查找和SQL數據庫查詢,正則表達式測試,SVN等,這些經常要做的操作中,耽誤了我不少的時間,甚至會打