【正文】
存其查詢結(jié)果和生成的html文件。Memcached對用戶經(jīng)常使用的并且更新相對較少的業(yè)務(wù)數(shù)據(jù)進(jìn)行緩存,需要時(shí)通過Memcached直接讀取共享內(nèi)存中的業(yè)務(wù)數(shù)據(jù),如果讀取到,直接返回用戶需要的數(shù)據(jù)而不用再訪問數(shù)據(jù)庫來減輕數(shù)據(jù)庫的負(fù)載。系統(tǒng)通過一個(gè)唯一的關(guān)鍵字(Key), 對其相應(yīng)的業(yè)務(wù)數(shù)據(jù)進(jìn)行查找。在Uran系統(tǒng)中,我們在Memcached中使用兩層的數(shù)據(jù)結(jié)構(gòu)來存儲有價(jià)值的數(shù)據(jù)LEVEL 1 Key: 數(shù)據(jù)庫表名 Value: 查詢操作管理對象 查詢操作管理對象結(jié)構(gòu)如上圖所示 MemcachedTableNode管理所有跟表(Key)相關(guān)的緩存數(shù)據(jù)信息內(nèi)部狀態(tài) invokerArray:實(shí)施在表上的,通過業(yè)務(wù)接口獲取數(shù)據(jù)的操作集合 latestUpdateDateTime:表中數(shù)據(jù)最新的變更時(shí)間 InvokerStorage 操作數(shù)據(jù)的業(yè)務(wù)接口狀態(tài)內(nèi)部狀態(tài) invokerMethodName:業(yè)務(wù)操作名稱。1級最高,如果表中的數(shù)據(jù)有變化時(shí),通過這個(gè)業(yè)務(wù)接口得到并緩存的業(yè)務(wù)數(shù)據(jù)立即過期,清除掉,以后再重新從數(shù)據(jù)庫中讀出。 參與考慮因素的因子:表最新更新時(shí)間,操作接口的權(quán)重,數(shù)據(jù)從數(shù)據(jù)庫中取出被緩存的時(shí)間,用戶訪問該數(shù)據(jù)的次數(shù)。 無單點(diǎn)失敗 MogileFS 安裝的三個(gè)組件 (存儲節(jié)點(diǎn)、跟蹤器, 跟蹤用的數(shù)據(jù)庫) 均可運(yùn)行在多個(gè)機(jī)器上, 因此這兒沒有單點(diǎn)失敗. (你也可以將跟蹤器和存儲節(jié)點(diǎn)運(yùn)行在同一臺機(jī)器上,這樣你就沒有必要用4臺機(jī)器了)推薦兩臺機(jī)器。用這種辦法,MogileFS(不做RAID)可以節(jié)約 磁盤,否則你將存儲同樣的拷貝多份,完全沒有必要。你可以自己生成多個(gè)命名空間,只要你愿意,不過這樣可能在同一MogileFS中會造成key沖突。 不會碰到文件系統(tǒng)本身的不可知情況 在MogileFS中的存儲節(jié)點(diǎn)的磁盤可以被格式化成多種格式(ext3,reiserFS等等)。 主要類圖5.1 Mogile handling flowchart如果啟用Mogilefs,則返回的file path 是mogilefs 的URL路徑,如:7500/dev1/0/000/000/否則返回的是當(dāng)前文件上傳的本地位置路徑. 性能設(shè)計(jì) Zend Optimizer是由PHP核心引擎“Zend” 創(chuàng)建者Zend技術(shù)公司所開的免費(fèi)PHP優(yōu)化軟件。下面的代碼演示安裝過程:uran:/opt/software tar xzvf uran:/opt/software cd uran:/opt/software/Zend~ ./ 系統(tǒng)會彈出安裝向?qū)нM(jìn)行安裝, server目錄即可完成全部安裝。 : modules include_file/configurations/modules//include_file/modules ,下面示例是main模塊的配置代碼: main controller_nameAuth/controller_name module_dir/application/modules/main/module_dir /main 該配置片段描述了如下信息:1)main模塊所有相關(guān)的文件如service類、dao類、action類、view類、model類全部位于 /application/modules/main目錄下(module_dir); 2)controller類文件由controller_name+”Controller”組成,,位于module_dir/controllers目錄下。 第三及更多的段表示的是傳遞給控制器的參數(shù)。 class UserInfo { private $。 } public function getPassword() { return $thispassword。 public function loginAction() { $user = new UserInfo()。 $result = $scexecute(39。典型的一個(gè)DAO類會返回一個(gè)dataModel給業(yè)務(wù)類,該數(shù)據(jù)模型會和模版文件一起render 視圖。 $result = $thisdbInstancequery($sql)。_addr39。 class UserService extends UranApp_Service_AbstractService { public function getDAOClassName() { return UserDAO。 public function loginAction() { $user = new UserInfo()。 $result = $scexecute(39。 //following code can omit,as default page which name is the same //as action name $thisrender(login)。 效果演示截圖: 1) Click the ‘Share Link’ on wall page, then popup the dialog below: 2) Input share link url, eg. and click attach button, then ajax request will be send. 3) Ajax response will be shown: 分頁技術(shù) 為了防止頁面一次加載大量數(shù)據(jù),使用了分頁技術(shù)僅僅獲取部分?jǐn)?shù)據(jù)顯示。 2. Mysql 集群配置