使用阿里云负载均衡+mysql数据库主从+读写分离+redis的测试

一、负载均衡

1、买两台服务器,部署环境,能够正常访问即可。

2、购买负载均衡实例。

3、添加监听。

4、服务器-后端服务器-未添加的服务器,选择两台服务器。然后直接添加。(端口都选择80)

5、域名解析到负载均衡的公网IP即可。访问负载均衡的公网IP,会偶尔返回A服务器的内容,偶尔返回服务器B的内容

 

 

二、数据库主从(关于更多主主复制和主从复制,请参考https://www.cnblogs.com/phpstudy2015-6/p/6485819.html#_label2)

 

首先注意:使用navicate的时候,发现一直无法连接,除了服务加入防火墙,端口是否开启。==>>请去设置阿里云的安全组。

 

==>>接下来,我们会配置主从数据库。主数据库内网IP:172.16.74.128    从数据库IP:172.16.74.129

 

1、在128创建mysql129用户,可以在129登录内网128的主机。(128为主,129为从)

GRANT REPLICATION SLAVE ON *.* TO 'mysql129'@'172.16.74.129' IDENTIFIED BY 'mysql129';

 

2、查看172.16.74.128的二进制文件的位置与文件名:

SHOW MASTER STATUS;

 

3、在172.16.74.129的机子上配置主从配置:

mysql> CHANGE MASTER TO
    -> MASTER_HOST='172.16.74.128',
    -> MASTER_USER='mysql129',
    -> MASTER_PASSWORD='mysql129',
    -> MASTER_LOG_FILE='mysql-bin.000007',      // 这个mysql-bin.000007就是上面128里面查询出来的
    -> MASTER_LOG_POS=107;    //主数据库的position是107

返回OK,完成主从配置。

 

4、在129开启主从复制并查看状态

mysql>SLAVE START;   #开启复制
mysql>SHOW SLAVE STATUS\G;   #查看主从复制是否配置成功

 

——这时候我们发现报错了。slave_io_running是no

 

我们看一下报错:

————这个报错的意思是:主从mysql的server-id是一样的,所以IO进程停止了。

 

那么,我们只要修改一下129的/etc/my.cnf中的server-id与master不一样。

vim etc/my.cnf

 

 重启mysql:并查看结果:

service mysql restart

两个都是yes了。

 

5、测试主从复制:

登录172.16.74.128的mysql,创建一个数据库和数据表。

mysql>create database aa;
mysql>use aa;
mysql>create table tab1(id int auto_increment,name varchar(10),primary key(id));
mysql>show databases;
mysql>use aa;
mysql>show tables;

 

然后登录172.16.74.129的mysql,直接:

mysql>show databases;
mysql>use aa;
mysql>show tables;

 

————此时,从数据库也出现了

 

说明同步成功!!!!!

 

 

三、添加redis作为缓存。

redis请参考另一篇博客

 

 

四、解决session问题

 

 

五、在TP5中配置redis缓存:

'cache'                  => [
    // 选择模式
    'type'   => 'complex',

    // 默认(文件缓存)
    'default'=>[
        // 文件缓存
        'type'   => 'File',
        // 缓存保存目录
        'path'   => CACHE_PATH,
        // 缓存前缀
        'prefix' => '',
        // 缓存有效期 0表示永久缓存
        'expire' => 0,
    ],

    // Redis缓存
    'redis'=>[
        'type'   =>'Redis',
        'host'   => '127.0.0.1',
        'port'   => '6379',
        'password' => '123456',
        'timeout'=> 3600    //3600秒
    ]

],

 

 操作:

// 切换到file操作
Cache::store('file')->set('name','value');
Cache::get('name');
// 切换到redis操作
Cache::store('redis')->set('name','value');
Cache::get('name');

 

 

 

 

——————占位符

 

posted @ 2018-03-05 14:54  小寒1206  阅读(527)  评论(0编辑  收藏  举报