首页 > 编程 > PHP > 正文

PHP实现负载均衡下的session共用功能php技巧

2020-03-22 17:29:18
字体:
来源:转载
供稿:网友
这篇文章主要介绍了PHP实现负载均衡下的session共用功能,结合实例形式分析了php基于memcache的session共享相关实现技巧,需要的朋友可以参考下

本文实例讲述了PHP实现负载均衡下的session共用功能。分享给大家供大家参考,具体如下:

最近忙于开发台湾运动彩券第四版的程序,所以已经很久没有上来写东西了,今天随便写点东西和大家分享.

首先说一下负载均衡,相信大家都知道负载均衡可以很好地解决网站大流量的问题,负载均衡就是把用户的请求分发到多态pc上进行处理,既然分发了请求那么session就要考虑好处理方法.传统情况下php会把session存入本机的暂存档内,可是这种情况下分发了之后session就丢失了,其实最简单的解决方法就是用memcache来托管,单独架设一台服务器用来作为memcache服务器(内存最好是大一点),接下来的工作就交给PHP代码来做就好了,这裡我不想修改php.ini,因为每台都改的话太累,而且我又比较懒

或许您会告诉我说直接修改一下php.ini的session存储位置就能写入memcache了,是,没错,但是这种方式却不能调用gc释放掉过期的会话,而今天我们要说的就是不但要让他托管,还得让他自动释放会话.

既然要做,那就要做到完美才行,下边是我的代码,不懂得自己看注释:

$_ENV=array( SYS = array( Memip = 127.0.0.1 , //MEMCACHE的ip Mempt = 11211, //MEMCACHE的port Memtim = 10, //MEMCACHE的超時時間//托管SESSION到MEMCACHE,如果开启失败,则说明MEMCACHE没有配置正确final html' target='_blank'>class S{ public static function open(){ //禁止session自动开启 session_write_close(); ini_set( session.auto_start ,0); //使用五十分之一的概率启动gc清理会话 ini_set( session.gc_probability ,1); ini_set( session.gc_pisor ,50); ini_set( session.use_cookies ,1); //session的寿命 //ini_set( session.gc_maxlifetime ,$_ENV[ SYS ][ Memtim  //ini_set( session.cookie_lifetime ,$_ENV[ SYS ][ Memtim  //ini_set( session.save_handler , files  //ini_set( session.save_path ,Run. _tmp  //ini_set( session.save_handler , memcache  //ini_set( session.save_path , tcp://127.0.0.1:11211  //$_ENV[ S_tim ] = ini_get( session.gc_maxlifetime  //建立memcache对象 $_ENV[ S_mem ]=new Memcache; $_ENV[ S_mem ]- connect($_ENV[ SYS ][ Memip ],$_ENV[ SYS ][ Mempt ]) or die( Memcache連接失敗!  return TRUE; 返回:读到的內容 /**/ public static function read($id){ return $_ENV[ S_mem ]- get( s_ .$id); 返回:bool /**/ public static function write($id,$data){ return $_ENV[ S_mem ]- set( s_ .$id,$data,MEMCACHE_COMPRESSED,$_ENV[ SYS ][ Memtim  返回:bool /**/ public static function close(){ $_ENV[ S_mem ]- close(); unset($_ENV[ S_mem ],$_ENV[ SYS ][ Memtim  return TRUE; 返回:bool /**/ public static function destroy($id){ return $_ENV[ S_mem ]- delete( s_ .$id); 返回:bool /**/ public static function gc(){ return TRUE;session_set_save_handler( S::open , S::close , S::read , S::write , S::destroy , S::gc $_ENV[ sessionid ]=(isset($_REQUEST[ sessionid ])) ? trim($_REQUEST[ sessionid ]) : session_id();if($_ENV[ sessionid ]!= ){session_id($_ENV[ sessionid }session_start();

您可能感兴趣的文章:

php无限级评论嵌套实现代码php技巧

PHP实现数据库的增删查改功能及完整代码php实例

PHPMAILER实现PHP发邮件功能php实例

以上就是PHP实现负载均衡下的session共用功能php技巧的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表