在php中如何設(shè)置session用memcache來(lái)存儲(chǔ)-創(chuàng)新互聯(lián)

小編給大家分享一下在php中如何設(shè)置session用memcache來(lái)存儲(chǔ),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)公司專(zhuān)注于東源企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城系統(tǒng)網(wǎng)站開(kāi)發(fā)。東源網(wǎng)站建設(shè)公司,為東源等地區(qū)提供建站服務(wù)。全流程專(zhuān)業(yè)公司,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)

memcached提供了一個(gè)自定義的session處理器可以被用于存儲(chǔ)用戶(hù)session數(shù)據(jù)到memcached服務(wù)端。一個(gè)完全獨(dú)立的memcached實(shí)例將會(huì)在內(nèi)部使用,因此如果需要您可以設(shè)置一個(gè)不同的服務(wù)器池。session的key被存儲(chǔ)在前綴memc.sess.key.之下,因此, 如果你對(duì)session和通常的緩存使用了同樣的服務(wù)器池,請(qǐng)注意這一點(diǎn)。譯注:另外一個(gè)session和通常緩存分離的原因是當(dāng)通常的緩存占滿(mǎn)了memcached服務(wù)端后,可能會(huì)導(dǎo)致你的session被從緩存中踢除,導(dǎo)致用戶(hù)莫名的掉線(xiàn)。

session.save_handler string

設(shè)置為memcached開(kāi)啟memcached的session處理器。

session.save_path string

定義一個(gè)逗號(hào)分隔的hostname:port樣式的session緩存服務(wù)器池,例如: "sess1:11211, sess2:11211".


方法I: 在 php.ini 中全局設(shè)置

session.save_handler = memcache 
session.save_path = "tcp://127.0.0.1:11211"

方法II: 某個(gè)目錄下的 .htaccess

php_value session.save_handler "memcache" 
php_value session.save_path "tcp://127.0.0.1:11211"

方法III: 再或者在某個(gè)一個(gè)應(yīng)用中

ini_set("session.save_handler", "memcache"); 
ini_set("session.save_path", "tcp://...:");

使用多個(gè) memcached server 時(shí)用逗號(hào)","隔開(kāi),并且和 Memcache::addServer() 文檔中說(shuō)明的一樣,可以帶額外的參數(shù)"persistent"、"weight"、"timeout"、"retry_interval" 等等,類(lèi)似這樣的:"tcp://host1:port1?persistent=1&weight=2,tcp://host2:port2" 。

如果安裝的PECL是memcached(依賴(lài)libmemcached庫(kù)的那個(gè)擴(kuò)展),則配置應(yīng)為

ini_set("session.save_handler", "memcached"); // 是memcached不是memcache 
ini_set("session.save_path", "127.0.0.1:11211"); // 不要tcp:[/b]

代碼例子(不依賴(lài)libmemcached庫(kù)的那個(gè))

<?php 
session_start(); 
if (!isset($_SESSION['TEST'])) { 
$_SESSION['TEST'] = time(); 
} 
$_SESSION['TEST'] = time(); 
print $_SESSION['TEST']; 
print "<br><br>"; 
print $_SESSION['TEST']; 
print "<br><br>"; 
print session_id(); 
?>

用 sessionid 去 memcached 里查詢(xún)一下:


<?php 
$memcache = memcache_connect('localhost', ); 
var_dump($memcache->get('ccedecbceebe')); 
$memcache->set('aaaa', 'hello everyone'); 
var_dump($memcache->get('aaaa')); 
?>

會(huì)看到

string(37) "TEST|i:1177556731;TEST3|i:1177556881;"

這樣的輸出,證明 session 正常工作。


下面通過(guò)兩種用法實(shí)例給大家介紹下php中使用memcached來(lái)存儲(chǔ)session

一、

ini_set("session.save_handler", "memcache");
ini_set("session.save_path","tcp://127.0.0.1:11211");

多個(gè)memcached

ini_set("session.save_path","tcp://127.0.0.1:11211,tcp://127.0.0.1:11211");

二、

ini_set("session.save_handler", "memcached");
ini_set("session.save_path","...:");

多個(gè)memcached

ini_set("session.save_path","127.0.0.1:11211,127.0.0.1:11211");

以上是“在php中如何設(shè)置session用memcache來(lái)存儲(chǔ)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)站題目:在php中如何設(shè)置session用memcache來(lái)存儲(chǔ)-創(chuàng)新互聯(lián)
分享路徑:http://muchs.cn/article30/dhsjpo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、App開(kāi)發(fā)、標(biāo)簽優(yōu)化、定制開(kāi)發(fā)外貿(mào)建站、小程序開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)