• 企业架构LNMP学习笔记46


    PHP测试连接代码:

    php代码测试使用memcached:

    示例代码

    1. //实例化类
    2. $mem = new memcached();
    3. //调用连接memcached方法 注意连接地址和端口号
    4. $mem->addServer('192.168.17.114',11211);
    5. //存数据
    6. var_dump($mem->set('name','lnmp'));
    7. //取数据
    8. var_dump($mem->get('name'));

    开始的时候连接失败:

    到192.168.17.114服务器上进行检查,看到memcached进程没有启动:

    ./memcached -uroot -d

    然后再使用php index.php命令运行:

    1. [root@server01 public]# php index.php
    2. bool(true)
    3. 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命令。

    做一个压测,把数据库压力体现出来。(以后有时间把压力测试,练习下。)

    业务配置文件,最好是问清楚开发如何配置,或者让开发进行配置。

  • 相关阅读:
    模型预处理层介绍(1) - Discretization
    【数字图像处理】图像的几何变换
    基于java web的企业财务管理系统设计与实现
    【离散数学】图的随机生成和欧拉(回)路的确定(c语言实现)
    网站安全防护措施
    【情感识别】BP神经网络语音情感识别【含Matlab源码 349期】
    【Linux私房菜】第七期——尾声
    学完Spring框架回头再来看反射你会发现真的不一样
    linux内网渗透
    19 | 多线程1
  • 原文地址:https://blog.csdn.net/chang_chunhua/article/details/132899378