使用阿里云负载均衡+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');
——————占位符