Home  >  Article  >  Backend Development  >  小蚂蚁学memcache笔记-php操作memcache(2)

小蚂蚁学memcache笔记-php操作memcache(2)

WBOY
WBOYOriginal
2016-06-20 12:48:44716browse

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

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

memcache的分布式  这里是重点

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

例如 :

$mem    ->    new Memcache();$mem    ->    addServer('127.0.0.1',11211);    //增加链接池$mem    ->    addServer('127.0.0.1',9999);     //增加链接池   $mem    ->    get($key);

memcached尽管是‘分布式’缓存服务器,但服务器端并没有分布式功能。

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

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

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

memcache细节的研究

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

如何将session放入到memcache中保存

修改php.ini配置文件

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

修改如下 将session.save_handler 改为 memcache

将 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");     //函数的参数都是以减值对的形式存入

ini_set()功能很强大,可以修改php.ini中的任何值。

safe_mode模式的谈论

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

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn