Heim >Backend-Entwicklung >PHP-Tutorial >php使用 memcache 来存储 session 方法总结_PHP教程

php使用 memcache 来存储 session 方法总结_PHP教程

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-07-13 10:42:09891Durchsuche

设置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: 再或者在某个一个应用中

<span 1</span> <span ini_set</span>("session.save_handler", "memcache"<span ); 
</span><span 2</span> <span ini_set</span>("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代码 收藏代码
ini_set("session.save_handler", "memcached"); // 是memcached不是memcache
ini_set("session.save_path", "127.0.0.1:11211"); // 不要tcp:[/b]


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

<span  1</span> <?<span php 
</span><span  2</span> <span session_start</span><span (); 
</span><span  3</span> <span if</span> (!<span isset</span>(<span $_SESSION</span>['TEST'<span ])) { 
</span><span  4</span> <span $_SESSION</span>['TEST'] = <span time</span><span (); 
</span><span  5</span> <span } 
</span><span  6</span> 
<span  7</span> <span $_SESSION</span>['TEST3'] = <span time</span><span (); 
</span><span  8</span> 
<span  9</span> <span print</span> <span $_SESSION</span>['TEST'<span ]; 
</span><span 10</span> <span print</span> "<br><br>"<span ; 
</span><span 11</span> <span print</span> <span $_SESSION</span>['TEST3'<span ]; 
</span><span 12</span> <span print</span> "<br><br>"<span ; 
</span><span 13</span> <span print</span> <span session_id</span><span (); 
</span><span 14</span> ?>

 




用 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 正常工作。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/667911.htmlTechArticle设置session用memcache来存储 方法I: 在 php.ini 中全局设置 session.save_handler = memcache session.save_path = "tcp://127.0.0.1:11211" 方法II: 某个目录下的 .h...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn