后端开发|php教程
Memcached,session
后端开发-php教程
方法文件
session实现文件:memcachedsession.php
实现原理(也是PHP内部session的实现原理):
1.先判断客户端有没有sessionid,
a.没有就添加一个sessionid给客户端,通常是32位hash码,同时初始化一个数组做session容器
b.如果客户端有sessionid,则利用这个sessionid去memcached里面查数据。
2.用户在页面执行过程中可以自行修改session容器里的session值
3.页面最后会把用户的session容器作为值,以用户的sessionid作为键,把这个键值对保存到
memcached里面
看折扣特卖源码,ubuntu无源可用,tomcat重启文件找回6,爬虫web前端,php数学编程教程外包,永春SEOlzw
<?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);
}
?>
测试文件:
设置session值
猴王水果竞猜源码,用vscode做bmi计算,ubuntu显示路径,运行2个tomcat,sqlite简述,手机网页设计模板html,asp连接数据库用xml,备用域服务器,一元云购微信支付插件,前端.net框架,爬虫cs录入,简单的php代码,新手学习seo,springboot 直播架构,input标签不显示边框颜色,培训门户网站源码,扁平化网页设计素材,调用模板文件路径,ecshop 后台 密码,页面定位 指定位置顶部,easyui公司管理系统模板,婚恋交友网站源码及安装程序lzw
<?php
/*
设置session值文件:session_set.php
*/
include_once "memcachedsession.php";
_session_start();
$_SESSION[a] = time();
?>
获取session值
站长啦网站目录源码,vscode ts报错,ubuntu收购,Tomcat中包,sqlite3.21加密,隐藏应用程序的插件,蚂蚁金服开源前端框架,网络爬虫怎么用英语,php 环境下载,石嘴山网络seo优化,手机网站 尺寸 代码,教学网页模版,界面模板下载lzw
<?php
/*
获取session值文件:session_get.php
*/
include_once "memcachedsession.php";
_session_start();
function getsession()
{
echo $_SESSION[a];
}
getsession();
?>
Memcached的缓冲应用还是非常不错滴,呵呵,,,
转载:jincon’s 包 blog