PHP测试连接代码:
php代码测试使用memcached:
示例代码:
<?php
//实例化类
$mem = new memcached();
//调用连接memcached方法 注意连接地址和端口号
$mem->addServer('192.168.17.114',11211);
//存数据
var_dump($mem->set('name','lnmp'));
//取数据
var_dump($mem->get('name'));
开始的时候连接失败:
到192.168.17.114服务器上进行检查,看到memcached进程没有启动:
./memcached -uroot -d
然后再使用php index.php命令运行:
[root@server01 public]# php index.php
bool(true)
string(4) "lnmp"
如果看到memcached类找不到,说明库没有安装好。学会分析问题,找原因。
我们公司有这方面的php的业务,运维正常是掌握Shell和Python方面的。
企业案例实现:
1、session入memcached共享:
session为什么要共享:因为在分布式负载均衡架构中,web服务器间的session是不共享的,会造成session校验不一致,校验验证码不成功。登录之后session不一致,造成无法判断是否登录。
解决方案:
1)session生成校验在同一台服务器 nginx调度算法 ip_hash。
2)session共享,多台web服务器可以调用到session。
修改项目配置文件:
server01和server03都需要修改,并且web服务器都要安装好memcached扩展
vim /usr/local/nginx/html/tp5shop/application/config.php
修改完成之后,之后的请求所生成的session,就被写入到memcached中了。
访问测试:
在memcached中,session_id作为key,session的内容作为value进行存储。
都是在业务代码中实现,服务架构中,只要按需配置即可。
把cookie中的session_id进行clear,就又返回到后台登录页面。
如果在memcached中把session_id进行删除,flush_all,那么又要重新登录页面。
用户的登录状态是要存到服务器,并不能存到客户端的cookie中。
开发的时候才能理解到session和cookie的问题。
缓存热点数据:
把经常访问到的数据,发生变动较小 ,可以存储到内存缓存中,提供访问速度。
注意:修改web服务器的文件时,一定要修改web1和web2。
get category命令。
做一个压测,把数据库压力体现出来。(以后有时间把压力测试,练习下。)
业务配置文件,最好是问清楚开发如何配置,或者让开发进行配置。