用memcache做session共享

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用memcache做session共享相关的知识,希望对你有一定的参考价值。


测试的前题:

在WEB负载均衡状态下,当用户在WEB1服务器登陆,下次在进行任意操作时,可能会在WEB2,WEB3...中进行请求的处理,因此,在非WEB1的服务器中是不会有SESSION的,到此,需要用到SESSION共享存储来解决该问题。


  1. 将session以memcache扩展库进行存储数据


<?php 
//首先用memcache的扩展session存储器进行设置
ini_set(‘session.save_handler‘, ‘memcache‘); //session的处理方式为:memcache
ini_set(‘session.save_path‘, ‘tcp://127.0.0.1:11211‘);//session的保存位置为memcache服务器的地址+端口
session_start();
$_SESSION[‘address‘]  = ‘shandong_printce‘;




2.测试存储的session是否存在,用于在不同的WEB服务器中检查用户是否登陆

<?php 
//在memcached中读取session的数据,是以session_id()作为key的
$session_id = session_id();
$memcache = new memcache;
$memcache->connect(‘127.0.0.1‘,11211); //本地测试,这里需要填写 memcached的服务器所在ip与端口
if($memcache->get($session_id)){
echo ‘LOGIN, SUCCESS...‘;
}

以上为个人测试并做记录,如有不正确的地方,欢迎广大朋友留言指正,相互学习。

以上是关于用memcache做session共享的主要内容,如果未能解决你的问题,请参考以下文章

Nginx做负载均衡时session共享问题详解

tomcat 共享session 用memcache(图片)

tomcat 共享session 用memcache(图片)

TomcatTomcat + Memcached 实现session共享

Nginx + Memcached 实现Session共享的负载均衡

系统时间不一致导致memcached的session不共享