Memcached緩存Session(不建議)
阿新 • • 發佈:2018-09-20
情況 升級 png 實驗 cached memcach 數據 分享 art
本文源鏈接地址:https:www.93bok.com
實驗環境: Centos6.5minimal 64位系統
服務器IP:192.168.10.22
說明:
1. LNMP+Memcached環境搭建不再演示,可參考之前文章
2. 相信大家也看到了,文章的後邊加了(不建議)的後綴,說說原因吧:
A、如果用memcached存儲Session,那麽當memcached集群發生故障(比如內存溢出)或者維護(比如升級、增加或減少服務器)時,用戶會無法登錄,或者被踢掉線
B、memcached 的回收機制可能會導致用戶無緣無故地掉線
方法一:通過PHP配置文件使用memcached緩存session
1、配置PHP
Session的數據默認情況下,保存在file文件中,我們可以通過修改php的配置,讓其保存在其它地方:
vim /etc/php/php.ini
session.save_handler = memcached
session.save_path = "192.168.10.22:11211"
2、重啟php-fpm
service php-fpm restart
3、測試一下
vim /a01/apps/nginx/html/session.php <?php //set_session session_start(); $_SESSION[‘name‘]=‘nongkaige‘; ?> <?php //get_session session_start(); $name=$_SESSION[‘name‘]; echo $name; ?>
http://192.168.10.22/session.php
輸出nongkaige正確
但是如果獲取session變量的時候,不再是name屬性,而是通過session_id來保存的:
vim /a01/apps/nginx/html/session_id.php
<?php
session_start();
$_SESSION[‘age‘]=‘huanglihua‘;
$sess_id=session_id();
var_dump($sess_id);
?>
http://192.168.10.22/session_id.php
方法二:通過ini_set() 使用memcached緩存session
上一種方法是修改的PHP配置文件,那如果我不是管理員,沒有權限修改PHP配置文件呢,這時候ini_set()可以在php網站中,設置memcached緩存session
vim /a01/apps/nginx/html/ceshiye.php
<?php
ini_set(‘session.save_handler‘,‘memcached‘);
ini_set(‘session.save_path‘,‘192.168.10.22:11211‘);
session_start();
$_SESSION[‘age‘]=‘huanglihua‘;
$sess_id=session_id();
var_dump($sess_id);
?>
Memcached緩存Session(不建議)