php session缓存,扫盲:php session缓存至memcached中的方法
memcached是一套分布式的快取系統,當初是DangaInteractive為了LiveJournal所發展的,但被許多軟件(如MediaWiki)所使用。這是一套開放源代碼軟件,以BSDlicens
更改為:
session.save_handler=?memcache
session.save_path="tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"
如果memcahced使用的是公網服務器的話最好使用其公網地址
保存退出并重啟服務
[root@testhtdocs]#?/etc/init.d/php-fpm?restart
Gracefullyshutting?down?php-fpm?.?done
Startingphp-fpmdone
創建測試頁setsession.php
[root@testhtdocs]#?cat?setsession.php
session_start();
if(!isset($_SESSION['test']))?{
$_SESSION['test']?=?time();
}
print$_SESSION['test'];
print"
";
print"Session?ID:?"?.?session_id();
?>
新建php頁面showsess.php,獲取當前用戶的會話ID:
[root@testhtdocs]#?cat?showsess.php
session_start();
$memcache_obj=?new?Memcache;
$memcache_obj->connect('127.0.0.1',11211);
$mysess=session_id();
var_dump($memcache_obj->get($mysess));
$memcache_obj->close();
?>
而后找一其他主機,使用負載均衡輪詢到不同的主機上,可以發現無論刷新至哪個頁面?其用戶的session是一樣的
訪問setsession.php
1399775256?????????#為獲取時間
Session?ID:?9a0itlgjlurghq83ibvmol5pc7?????#為session的id號
獲取session
可以看到其時間是與上面setsession是一樣的
總結
這樣一來比php將session保存在本地效率要快很多,,如果以后要使用多臺memcached的話至于開發程序能否實現負載均衡,到底是使用取余的算法還是使用一致性哈希的算法完全要看開發人員的決定了
感謝各位。
本文出自 “心情依舊” 博客,請務必保留此出處
總結
以上是生活随笔為你收集整理的php session缓存,扫盲:php session缓存至memcached中的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cms的 php代码,KingCMS/P
- 下一篇: 余弦欧式距离matlab,余弦相似度和欧