如何将session保存到mamcache中 以及 如何将储存到memcache中的session信息读取

本文介绍如何通过修改PHP配置使Session数据存储于Memcache中,包括不修改php.ini文件的临时配置方法,并演示如何从Memcache中获取Session数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

session 的数据保存到memcache中  【修改php.ini】
session的数据默认情况下,保存在file 文件中

但是我们可以通过修改php的配置,让他保存在其他地方

(1)、打开D:\lamp\php/php.inisession.save_handler = files是开着的,把它注释了


Session内容保存路径,添加画红线的那句话

我们进行测试一下::
session_start();

$_SESSION['name']='hahaha';
$name=$_SESSION['name'];

echo $name;


没有权限修改php的配置  或者 不想永久的把session保存到memcache中
ini_set() 可以在php文件中,设置php的一些配置

【安全问题:现在谁都可以访问我的memcache,别人访问我的telnet 192.168.2.200也能访问,-----------解决之道:防火墙】

上面session的使用时修改了php.ini配置文件,现在做的是不用修改配置文件直接在文件开头加上:

ini_set('session.save_handler','memcache');
ini_set('session.save_path','127.0.0.1:11211');  //告诉它用session保存到mamcache中

session_start();
$name = $_SESSION['name']='哈哈哈';
$age = $_SESSION['age']=100;


echo $_SESSION['name'];
echo '<br/>';
echo $_SESSION['age'];

如何将储存到memcache中的session信息输出

获得session变量的时候,不再是name属性,而是通过session_id来保存的

session_id :浏览器访问服务器的时候,服务器给浏览器分配session_id 然后在通过session_id找对应的值

session_start();

$name = $_SESSION['name']='哈哈哈';
$age = $_SESSION['age']=100;

$session_id=session_id();

$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);
//session所有信息
var_dump($mem->get($session_id));  //输出的是session下的所有数据


运行结果为::  string(31) "name|s:9:"哈哈哈";age|i:100;"
如果想取到session下某个值   还像原来的echo $_SESSION['name'];

Memcache的生存周期:

重启memcached、重启操作系统会导致全部数据消失。另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。

如果设置expire0,表示永远不过期,直到机器重启或服务重启


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值