7. memcache 细节

memcache的细节讨论

① 生命周期
从数据放入mem开始计时,直到时间到了,就销毁, 如果时间为0, 则表示不过期.
memcache的数据被销毁的情况如下:
1. 时间到
2. 重启memcached服务
3. 重启memcached服务所在的机器
4. delete / flush 销毁数据


② 如何把session数据放入到memcached服务中.

步骤:
1.  修改php.ini的配置文件
如下:
;[sesson.save_handler 有user|files|memcache]
session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"
③   测试一把,重启apache
测试ok 

//传统的代码

<?php
session_start();
$_SESSION['name'] = '天龙八部';

//取出
$name = $_SESSION['name'];

echo 'name= ' . $name . '<br/>';

写入到磁盘文件中:
这里写图片描述
这里写图片描述

;session.save_handler = files
; user 代表使用自定义的 session 处理器
;session.save_handler = user
;表示放入memcache
session.save_handler = memcache

这里写图片描述

; session 保存的目录
session.save_path = "tcp://127.0.0.1:11211"

这里写图片描述
这里写图片描述

   思考,如果管理员,不让我们修改 php.ini 文件,我们如何处理session入memcached这个功能, 我们通过一个函数可以去修改 php.ini 的配置.
代码:
<?php

    ini_set("session.save_handler","memcache");
    ini_set("session.save_path","tcp://127.0.0.1:9999");

同时你也可以通过 ini_set 去动态的修改对php.ini 的其它设置 。但是他不影响其它php页面,也不会去修改php.ini 文件本身, 只对本页面生效.

mem6.php

<?php

//ini_set 只作用于本页面
ini_set('session.save_handler','memcache');
ini_set('session.save_path','tcp://127.0.0.1:11211');
//传统的代码
session_start();
$_SESSION['name'] = '天龙八部1003';
$_SESSION['city'] = 'beijing';

class Dog
{
    public $name;
}

$dog1 = new Dog();
$dog1->name = 'xiao gou';

$_SESSION['dog'] = $dog1;

//取出
$name = $_SESSION['name'];
$city = $_SESSION['city'];
$dog1 = $_SESSION['dog'];

echo 'name= ' . $name . '<br/>';
echo 'city= ' . $city . '<br/>';
var_dump($dog1);

//如果 session 数据存入 mem,那么它一定是以 session_id 为 key 值进行添加
echo session_id();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值