设置session用memcache来存储?
方法I: 在 php.ini 中全局设置?
- session.save_handler?=?memcache??
- session.save_path?=?"tcp://127.0.0.1:11211"??
方法II: 某个目录下的 .htaccess?
- php_value?session.save_handler?"memcache"??
- php_value?session.save_path??"tcp://127.0.0.1:11211"??
方法III: 再或者在某个一个应用中?
- ini_set("session.save_handler",?"memcache");??
- 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库的那个扩展),则配置应为?
- ini_set("session.save_handler",?"memcached");?//?是memcached不是memcache??
- ini_set("session.save_path",?"127.0.0.1:11211");?//?不要tcp:[/b]??
代码例子(不依赖libmemcached库的那个)?
- <?php??
- session_start();??
- if?(!isset($_SESSION['TEST']))?{??
- ????$_SESSION['TEST']?=?time();??
- }??
- ???
- $_SESSION['TEST3']?=?time();??
- ???
- print?$_SESSION['TEST'];??
- print?"<br><br>";??
- print?$_SESSION['TEST3'];??
- print?"<br><br>";??
- print?session_id();??
- ?>??
用 sessionid 去 memcached 里查询一下:?
- <?php??
- $memcache?=?memcache_connect('localhost',?11211);??
- var_dump($memcache->get('19216821213c65cedec65b0883238c278eeb573e077'));??
- $memcache->set('aaaa',?'hello?everyone');??
- var_dump($memcache->get('aaaa'));??
- ?>??
会看到?
string(37) "TEST|i:1177556731;TEST3|i:1177556881;"?
这样的输出,证明 session 正常工作。
?