thinkphp配置mysql集群_ThinkPHP配置MySQL数据库实现读写分离

c4e43e6da1c9bb68758118538c441d10.png

ThinkPHP提供了完善的读写分离功能,不需要手动切换数据库。什么时候读,什么时候写系统会自动判断。读数据时系统会操作从服务器,而写数据时系统会操作主服务器。最终由数据库实现同步,这就是一个最典型的数据库读写分离,下以将配置好的两台主从数据库为例,详细介绍实现读写分离。

首先打开项目下的数据库配置文件,修改其中的数据库连接参数。要实现多数据库连接,只需要使用”,”分隔多台服务器即可,如以下代码所示。

PHP

'配置值'

'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' => '',

'LAYOUT_ON'=>true,

);

?>

如上述代码所示,要启用读写分离只需要设置DB_RW_SEPARATE为true即可。然后其他的配置信息和普通的配置信息相差不大。DB_HOST用于配置服务器ip,多个服务器使用“,”隔开,排在第1个位置的表示主服务器(即写入服务器),排在后面的默认都会被分配为从服务器(读服务器); DB_USER用于配置服务登录用户,顺序与DB_HOST相对应,如果分布式数据库所有登录用户都相同,可以只输入一个登录名即可; DB_PWD与DB_HOST配置过程一样。

配置文件配置好后,现在就可以在动作中测试读写分离了,如以下代码所示。

PHP

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("数据添加失败");

}

}

}

?>

add动作执行后,可以首先查看192.l68.2.1主服务器,然后再观察192.168.2.10从服务器,可以看到这两台服务器的数据是同步更新的。通过读写分离,能够有效地提高数据库的负载能力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值