首页  >  文章  >  后端开发  >  memcache储存php session

memcache储存php session

WBOY
WBOY原创
2016-06-13 11:15:03749浏览

memcache存储php session

设置session用memcache来存储?

方法I: 在 php.ini 中全局设置?

Php.ini代码??收藏代码
  1. session.save_handler?=?memcache??
  2. session.save_path?=?"tcp://127.0.0.1:11211"??


方法II: 某个目录下的 .htaccess?

Php.ini代码??收藏代码
  1. php_value?session.save_handler?"memcache"??
  2. php_value?session.save_path??"tcp://127.0.0.1:11211"??



方法III: 再或者在某个一个应用中?

Php代码??收藏代码
  1. ini_set("session.save_handler",?"memcache");??
  2. ini_set("session.save_path",?"tcp://127.0.0.1:11211");??



使用多个 memcached server 时用逗号","隔开,并且和 Memcache::addServer() 文档中说明的一样,可以带额外的参数"persistent"、"weight"、"timeout"、"retry_interval" 等等,类似这样的:"tcp://host1:port1?persistent=1&weight=2,tcp://host2:port2" 。?

如果安装的PECL是memcached(依赖libmemcached库的那个扩展),则配置应为?

Php代码??收藏代码
  1. ini_set("session.save_handler",?"memcached");?//?是memcached不是memcache??
  2. ini_set("session.save_path",?"127.0.0.1:11211");?//?不要tcp:[/b]??



代码例子(不依赖libmemcached库的那个)?

Php代码??收藏代码
  1. session_start();??
  2. if?(!isset($_SESSION['TEST']))?{??
  3. ????$_SESSION['TEST']?=?time();??
  4. }??
  5. ???
  6. $_SESSION['TEST3']?=?time();??
  7. ???
  8. print?$_SESSION['TEST'];??
  9. print?"

    "
    ;??
  10. print?$_SESSION['TEST3'];??
  11. print?"

    "
    ;??
  12. print?session_id();??
  13. ?>??


用 sessionid 去 memcached 里查询一下:?

Php代码??收藏代码
  1. $memcache?=?memcache_connect('localhost',?11211);??
  2. var_dump($memcache->get('19216821213c65cedec65b0883238c278eeb573e077'));??
  3. $memcache->set('aaaa',?'hello?everyone');??
  4. var_dump($memcache->get('aaaa'));??
  5. ?>??



会看到?
string(37) "TEST|i:1177556731;TEST3|i:1177556881;"?
这样的输出,证明 session 正常工作。

?

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn