ThinkPHP实现读写分离

浏览:22595 发布日期:2014/06/29 分类:技术分享 关键字: 读写分离
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("数据添加失败");
      }
     }
    }
    ?>
原文链接:ThinkPHP配置MySQL数据库实现读写分离
最佳答案
评论( 相关
后面还有条评论,点击查看>>