thinkphp mysql 讀寫分離

ThinkPHP提供了完善的讀寫分離功能,不需要手動切換數據庫。什麼時候讀,什麼時候寫系統會自動判斷。讀數據時系統會操作從服務器,而寫數據時系統會操作主服務器。最終由數據庫實現同步,這就是一個最典型的數據庫讀寫分離,下以將配置好的兩臺主從數據庫爲例,詳細介紹實現讀寫分離。

首先打開項目下的數據庫配置文件,修改其中的數據庫連接參數。要實現多數據庫連接,只需要使用","分隔多臺服務器即可,如以下代碼所示。

<?php
    return array(
     //'配置項'=>'配置值'
     'URL_CASE INSENSITIVE' =>true,
     "DB_DEPLOY_TYPE"=>1, //是否啓用分佈式
     'DB_RW_SEPARATE'=>true, //是否啓用智能讀寫分離
     'DB_TYPE' => 'mysql', //數據庫類型
     'DB_HOST' => '192.168.2.1,192.168.2.10', //服務器地址
     'DB_NAME' => 'tp', //數據庫名
     'DB_USER' => 'root,root', //用戶名
     'DB_PWD' => 'root , root', //密碼
     'DB_PREFIX' => 'tpk_', //數據庫表前綴
     "project_name"=>"項目名稱",
     'TMPL_L_DELIM' => '<!--{',
     'TMPL_R_DELIM' => '}-->',
     'LAYOUT_ON'=>true,
    );
    ?>
配置文件配置好後,現在就可以在動作中測試讀寫分離了,如以下代碼所示。
<?php
    class IndexAction extends Action {
     //查詢
     public function index(){
     $articleObj=M("Article");
     $rows=$articleObj->select();
     dump($rows);
     }
     //寫入
     public function add() {
      $articleObj=M("Article");
      $data["title"]="讀寫分離測試"i
      $data["add_user"]="ceiba";
      $data["area"]="shanghai";
      $data["category"]=" 教育新聞";
      $data["content"]="讀寫分離測試---內容";
      if ($articleObj->add($data)) {
       $this->success("數據添加成功") ;
      }else {
       $this->error("數據添加失敗");
      }
     }
    }
    ?>

來源:http://www.thinkphp.cn/topic/15253.html




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章