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 的配置.
代码:
<?phpini_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();

7. memcache 细节相关推荐

  1. 小蚂蚁学memcache笔记—php操作memcache(3)

    2019独角兽企业重金招聘Python工程师标准>>> 上篇在学习$mem->set();的时候少写了一个参数,第三个参数,MEMCACHE_COMPRESSED,这个参数的作 ...

  2. php memcache扩展的一个细节

    为什么80%的码农都做不了架构师?>>>    关于add方法,手册说明: Memcache::add() expire Expiration time of the item. I ...

  3. Memcache面试题

    * memcached是怎么工作的?  * memcached最大的优势是什么?  * memcached和MySQL的query cache相比,有什么优缺点?  * memcached和服务器的l ...

  4. memcache及其telnet命令使用详解

    1.启动Memcache 常用参数 memcached 1.4.3 -p <num>      设置端口号(默认不设置为: 11211) -U <num>      UDP监听 ...

  5. Facebook 对 Memcache 伸缩性的增强

    概要:Memcached 是一个知名的,简单的,全内存的缓存方案.这篇文章描述了facebook是如何使用memcached来构建和扩展一个分布式的key-value存储来为世界上最大的社交网站服务的 ...

  6. Redis简介 与Memcache的区别

    redis 是一个基于内存的高性能key-value数据库. Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作, ...

  7. Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析

    一.问题:     数据库表数据量极大(千万条),要求让服务器更加快速地响应用户的需求. 二.解决方案:      1.通过高速服务器Cache缓存数据库数据      2.内存数据库   (这里仅从 ...

  8. memcache mysql 同步_memcache与mysql数据库同步

    mysql memcached UDF(用户自定义函数)和mysql触发器在更新mysql数据库的时候,触发更新memcache. 1.首先介绍mysql memcached UDF安装 mysql ...

  9. redis和memcache的区别

    简单区别:  1. Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcached相比一个最大的区别.  2. redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,h ...

  10. php模块memcache和memcached区别分析

    谈及php搭配memcached使用,已经是老生常谈的问题.但是有一些细节,不见得人人清楚.比如说php的模块memcache和memcached有什么区别等.下面我就简单介绍一下. 1.目前大多数p ...

最新文章

  1. Oracle+BEA后的ESB
  2. Internet概念与TCP/ IP分层模型
  3. Linux网络编程服务器模型选择之循环服务器
  4. 蓝桥杯 方格填数(全排列+图形补齐)
  5. LeetCode 1310. 子数组异或查询(前缀异或)
  6. [转载] Java 将字符串首字母转为大写 - 利用ASCII码偏移
  7. 详述白盒测试的逻辑覆盖法的判定覆盖及其优缺点
  8. 7-58 肿瘤诊断 (30 分)
  9. .net oracle 连接超时_ADO.NET (一) 前言
  10. win 7系统连接WIFI
  11. 将C#的Dic转成Lua的Table将C#的List转成Lua的Table
  12. 网站建设中做到需求分析细致,网站优化也就顺理成章了
  13. iOS里的动态库和静态库
  14. 悟空CRM系统项目测试
  15. 游戏研发学习路线(思维导图)
  16. Html给网页加icon图标
  17. Snug(舒适) as a Bug(小虫) in a Rug(小地毯)(2019/1/2)
  18. PEiD0.95 - 经典查壳工具
  19. C++关于string类的模拟实现
  20. 罗松-东文财-赵栋201771010112罗松《面向对象程序设计(java)》第十四周学习总结...

热门文章

  1. caffe里的blocking_queue.hpp与.cpp干了点什么呢???
  2. Binary translation is incompatible with long mode on this platform
  3. VC++监听数据分析出明文账号密码
  4. 使用C#创建ActiveX控件(译文)
  5. 45本Hadoop、大数据方向书籍,包邮送到家!
  6. R语言机器学习:caret包使用及其黑箱模型解释(连续变量预测)
  7. Sqlite和mysql的区别及优缺点
  8. STL在数组算法的使用
  9. 2017-2018-2 1723《程序设计与数据结构》第九周作业 第二周结对编程 总结
  10. nth-of-type和nth-child的区别