利用Memcached在php下实现session机制 替换PHP的原生session支持
2010-08-21 16:20
1141 查看
<?php //memcached服务器连接地址 $_MEMCACHEAUTH = array( 'host' => 'localhost' , 'port' => 11211 ); /* 获取一些初始化设置值 */ $_SESSION_NAME = ini_get("session.name"); //sessionid的名称 $_SESSION_TIME = ini_get("session.cookie_lifetime"); //sessionid这个cookie的最大保存时间 $_SESSION_EXPIRE = ini_get("session.gc_maxlifetime"); //session键值对在memcached里面的过期时间 $_SESSION_MEMKEY = ""; //sessionid值 /* 自定义的_session_start()方法,替换PHP的原生session_start()方法 逻辑应该是比较清楚的 */ function _session_start() { global $_SESSION_NAME, $_SESSION_TIME, $_SESSION_MEMKEY; global $_SESSION; global $_MEMCACHEAUTH, $_sessionmem; $_sessionmem = memcache_connect($_MEMCACHEAUTH['host'], $_MEMCACHEAUTH['port']); if ( empty($_COOKIE[$_SESSION_NAME]) ) { $_SESSION_MEMKEY = md5( uniqid() ); setcookie($_SESSION_NAME, $_SESSION_MEMKEY , $_SESSION_TIME, "/"); $_SESSION = array(); } else { $_SESSION_MEMKEY = $_COOKIE[$_SESSION_NAME]; $_SESSION = memcache_get($_sessionmem, $_SESSION_MEMKEY ); if ( $_SESSION === FALSE ) { $_SESSION = array(); } } //注册一个handler,这个函数会在页面执行完的时候执行 register_shutdown_function("_session_save_handler"); } /* 页面最后执行的方法,用于保存session值,以及关闭memcached连接 */ function _session_save_handler() { global $_sessionmem; global $_SESSION, $_SESSION_NAME, $_SESSION_EXPIRE, $_SESSION_MEMKEY; memcache_set($_sessionmem, $_SESSION_MEMKEY, $_SESSION, 0, $_SESSION_EXPIRE); memcache_close($_sessionmem); } ?>
相关文章推荐
- 利用Memcached在php下实现session机制 替换PHP的原生session支持
- 利用Memcached在php下实现session机制,替换PHP的原生session支持
- TOMCAT7.0利用memcached-session-manager 实现SESSION共享
- [转载]利用memcached在多台服务器之间共享PHP的session数据
- PHP实现利用MySQL保存session的方法
- 【源码剖析】tornado-memcached-sessions —— Tornado session 支持的实现(一)
- 【源码剖析】tornado-memcached-sessions —— Tornado session 支持的实现(二)
- PHP利用正则表达式实现手机号码中间4位用星号(*)替换显示功能
- php环境下利用session防止页面重复刷新的具体实现
- php利用变量替换实现反射
- 【源码剖析】tornado-memcached-sessions —— Tornado session 支持的实现(一)
- PHP利用session实现上传进度条的方法
- 利用memcached在多台服务器之间共享PHP的session数据
- PHP Session原生及兼容双向技术方案阐述和实现
- 利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
- PHP中利用COOKIE与SESSION联合实现SESSION跨域
- PHP Memcached 替换 系统$_SESSION
- php利用phpexcel插件实现数据的导入和导出(支持csv\xls\xlsx格式和超过26个字段列)
- 利用memcached在多台服务器之间共享PHP的session数据