美文网首页
thinkphp5 数据库读写分离

thinkphp5 数据库读写分离

作者: 小山人 | 来源:发表于2018-06-05 15:26 被阅读0次

thinkphp5 数据库读写分离

环境

项目在本地的wamp中,主数据库ip:192.168.1.114 从服务器ip:192.168.1.115(数据库服务器为之前笔记配置的主从服务器)

PS:操作方法与laravel相同,详情可查看laravel5.5 mysql数据库读写分离

配置database.php

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------

return [
    // 数据库类型
    'type'            => 'mysql',
    // 服务器地址
    'hostname'        => '192.168.1.114,192.168.1.115', //默认第一个为主数据库
    // 数据库名
    'database'        => 'test',  //如果两个数据库相同,可就写一个效果等同:'test,test'
    // 用户名
    'username'        => 'root', //如果两个数据库相同,可就写一个效果等同:'root,root'
    // 密码
    'password'        => '123456', //如果两个数据库相同,可就写一个效果等同:'123456,123456'
    // 端口
    'hostport'        => '',
    // 连接dsn
    'dsn'             => '',
    // 数据库连接参数
    'params'          => [],
    // 数据库编码默认采用utf8
    'charset'         => 'utf8',
    // 数据库表前缀
    'prefix'          => '',
    // 数据库调试模式
    'debug'           => true,
    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy'          => 1,      //1为分布式数据库
    // 数据库读写是否分离 主从式有效
    'rw_separate'     => true,   //读写分离
    // 读写分离后 主服务器数量
    'master_num'      => 1,
    // 指定从服务器序号
    'slave_no'        => '',
    // 是否严格检查字段是否存在
    'fields_strict'   => true,
    // 数据集返回类型
    'resultset_type'  => 'array',
    // 自动写入时间戳字段
    'auto_timestamp'  => false,
    // 时间字段取出后的默认时间格式
    'datetime_format' => 'Y-m-d H:i:s',
    // 是否需要进行SQL性能分析
    'sql_explain'     => false,
];

新建User模型

<?php
namespace app\common\model;

use think\Model;

class User extends Model {

}

测试控制器

<?php

namespace app\index\controller;

use app\common\model\User;

class Index {
    public function index() {
        return '你好';
    }

    //查询数据
    public function select() {
        $res = User::all();
        foreach ($res as $val){
            dump($val->toArray());
        }
    }
    
    //添加数据
    public function insert($p) {
        $input = [
            'user_phone' => '1234567890'.$p,
            'user_nicename' => $p,
            'user_email' =>  '123'.$p."@123.com",
            'user_pwd' => md5($p)
        ];
        $res = User::create($input);
        dump($res->toArray());
    }
}

相关文章

  • thinkphp5 数据库读写分离

    thinkphp5 数据库读写分离 环境 项目在本地的wamp中,主数据库ip:192.168.1.114 从服务...

  • 阿里P8架构师带你玩转数据库 “读写分离”

    想用数据库“读写分离” 请先明白“读写分离”解决什么问题 有一些技术同学可能对于“读写分离”了解不多,认为数据库的...

  • mysql读写分离

    mysql读写分离 1、读写分离的介绍 MySQL读写分离基本原理是让master数据库处理写操作,slave数据...

  • 11 MySQL 读写分离

    MySQL 数据读写分离 [TOC] 读写分离概述 什么是读写分离 把客户端访问数据库服务时的查询请求和写数据的请...

  • python django 开发电商

    1. 项目架构 2. 数据库表结构 3. 数据库读写分离 4. Django读写分离配置 新建utils/db_r...

  • 数据读写分离、多实例配置

    数据读写分离 读写分离概述 使用读写分离的原因 数据库写入效率要低于读取效率 一般来说,数据读取频率高于写入频率 ...

  • Sharding-JDBC教程:Spring Boot整合Sha

    读写分离 在上一篇文章介绍了如何使用Sharing-JDBC实现数据库的读写分离。读写分离的好处就是在并发量比较大...

  • Amoeba 实现 MySQL 读写分离

    [TOC] 一、读写分离原理 读写分离(Read/Write Splitting),基本的原理是让主数据库处理事务...

  • 46 初始MyCat实现读写分离与动态数据源切换

    基于MyCat实现读写分离读写分离,简单地说是把对数据库的读和写操作分开,以对应不同的数据库服务器。主数据库提供写...

  • cent os搭载mysql读写分离

    数据库拆分原则 1.优先使用缓存来降低数据库访问压力2.缓存无法解决问题使用数据库读写分离3.读写分离有瓶颈使用数...

网友评论

      本文标题:thinkphp5 数据库读写分离

      本文链接:https://www.haomeiwen.com/subject/mfzpsftx.html