码迷,mamicode.com
首页 > 系统相关 > 详细

Memcached缓存Session(不建议)

时间:2018-09-20 12:28:19      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:情况下   res   实验   service   保存   centos6.5   minimal   dump   演示   

本文源链接地址:https:www.93bok.com

实验环境: Centos6.5minimal 64位系统
服务器IP:192.168.10.22
说明:
1.  LNMP+Memcached环境搭建不再演示,可参考之前文章
2.  相信大家也看到了,文章的后边加了(不建议)的后缀,说说原因吧:

A、如果用memcached存储Session,那么当memcached集群发生故障(比如内存溢出)或者维护(比如升级、增加或减少服务器)时,用户会无法登录,或者被踢掉线
B、memcached 的回收机制可能会导致用户无缘无故地掉线

方法一:通过PHP配置文件使用memcached缓存session

1、配置PHP

Session的数据默认情况下,保存在file文件中,我们可以通过修改php的配置,让其保存在其它地方:

vim /etc/php/php.ini

session.save_handler = memcached
session.save_path = "192.168.10.22:11211"
2、重启php-fpm
service php-fpm restart
3、测试一下
vim /a01/apps/nginx/html/session.php

<?php
//set_session
session_start();
$_SESSION[‘name‘]=‘nongkaige‘;
?>
<?php
//get_session
session_start();
$name=$_SESSION[‘name‘];
echo $name;
?>
http://192.168.10.22/session.php

技术分享图片

输出nongkaige正确

但是如果获取session变量的时候,不再是name属性,而是通过session_id来保存的:

vim /a01/apps/nginx/html/session_id.php

<?php
session_start();
$_SESSION[‘age‘]=‘huanglihua‘;
$sess_id=session_id();
var_dump($sess_id);
?>
http://192.168.10.22/session_id.php

技术分享图片

方法二:通过ini_set() 使用memcached缓存session

上一种方法是修改的PHP配置文件,那如果我不是管理员,没有权限修改PHP配置文件呢,这时候ini_set()可以在php网站中,设置memcached缓存session

vim /a01/apps/nginx/html/ceshiye.php

<?php
ini_set(‘session.save_handler‘,‘memcached‘);
ini_set(‘session.save_path‘,‘192.168.10.22:11211‘);
session_start();
$_SESSION[‘age‘]=‘huanglihua‘;
$sess_id=session_id();
var_dump($sess_id);
?>

技术分享图片

Memcached缓存Session(不建议)

标签:情况下   res   实验   service   保存   centos6.5   minimal   dump   演示   

原文地址:https://www.cnblogs.com/93bok/p/9679881.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!