小蚂蚁学memcache笔记—php操做memcache(3)

上篇在学习$mem->set();的时候少写了一个参数,第三个参数,MEMCACHE_COMPRESSED,这个参数的做用在于压缩。php

memcache是独立机构,是C/S结构。若是memcache满了,LRU算法删除,把最先没有访问过的拿掉。前端

memcache的分布式  这里是重点算法

在第二部中将connect这个方法改为addserver(),在连接池中添加了一个memcache服务器。apache

例如 :缓存

$mem    ->    new Memcache();
$mem    ->    addServer('127.0.0.1',11211);    //增长连接池
$mem    ->    addServer('127.0.0.1',9999);     //增长连接池   
$mem    ->    get($key);
  1. memcached尽管是‘分布式’缓存服务器,但服务器端并无分布式功能。安全

  2. 各个memcache不会互相通讯以便信息共享。每一个memcache服务的数据不是同步的。服务器

  3. 并且把什么样的数据放入到哪个memcached是由客户端的mem对象来决定的。session

  4. 当执行addServer的时候,并非当即去链接mem服务,而是经过计算,hash后才去决定连接哪一台mem服务,因此当大量加入服务到链接池,不会有多余的开销。tcp

memcache细节的研究分布式

  1. 生命周期。从放入开始计时,时间到就自动销毁。memcache被销毁有如下几种状况。一,时间到。2、重启memcache。三,重启服务器。

如何将session放入到memcache中保存

  1. 修改php.ini配置文件

    1. session.save_handler=user    它有三个选项  user 表示自定义  files入库保存到文件  memcache保存在内存

    2. 修改以下 将session.save_handler 改成 memcache

    3. 将 session.save_path=“tcp://127.0.0.1:11211”

    2.    重启apache

注意:若是session数据存入memcache,那它必定是以session_id为key值进行添加的。

若是之后作大型门户网站,必定要把session写入到memcache。(强烈建议)

若是没法修改php.ini文件,能够经过函数修改php.ini任何配置。能够把如下两句写到脚本的前端

ini_set("session.sava_handler","memcache");
//函数的参数都是以减值对的形式存入
ini_set("session.save_path","tcp://127.0.0.1:9999");

safe_mode模式的谈论

他们的最大区别就在于,安全模式一旦打开,对服务器上文件的操做几乎失效。

ini_set()只会在很脚本起做用,不对其余文件起做用。

相关文章
相关标签/搜索