php session redis 配置

相信很多人用過數(shù)據(jù)庫,Memcache以及文件存儲SESSION,那么Rdis可以存儲SESSION嗎?答案是肯定的。

具體環(huán)境:

一臺apache+php的服務(wù)器(yum安裝remi源及配置 httpd-2.2.15 php-5.4.45)

一臺redis服務(wù)器(yum安裝remi源及配置 redis-3.2.6)

保證apache服務(wù)器可以訪問redis服務(wù)器的6379端口

具體步驟:

1、在apache+php服務(wù)器上安裝redis擴展

點擊(此處)折疊或打開

yum install php-pecl-redis

2、測試php是否安裝擴展成功

more index.php

點擊(此處)折疊或打開

php

phpinfo()

?>

瀏覽器訪問如下:

如上圖說明安裝成功,這里版本號和redis本身的版本號不同,大家可以忽略。

3、然后修改php.conf文件,可能很多人會疑問不是修改php.ini文件嗎?一會下面我會說。

點擊(此處)折疊或打開

more /etc/httpd/conf.d/php.conf

將如下兩行:

點擊(此處)折疊或打開

php_value session.save_handler "files"

php_value session.save_path "/var/lib/php/session"

修改為如下內(nèi)容

點擊(此處)折疊或打開

php_value session.save_handler "redis"

php_value session.save_path "tcp://192.168.9.131:6379"

這里有一些文章里面加了tcp,有的沒有加,本人測試過加或者不加session都可以存放在redis里面。

我個人理解的意思是:加了tcp表示tcp協(xié)議,如果沒有加則表示通過http協(xié)議。如果不對請勿噴~~

保存退出后重新啟動httpd服務(wù)

4、寫一個測試頁面test.php,內(nèi)容如下:

點擊(此處)折疊或打開

header("Content-type:text/html;charset=utf-8");

session_start();//這個很重要

$_SESSION['test_session']= @array('name' =>'fanqie' , 'ccc'=>'hello redis ');

$redis = new redis();

$redis->connect('192.168.9.131', 6379);

echo 'sessionid>>>>>>> PHPREDIS_SESSION:' . session_id();

echo '';

echo '';

//redis用session_id作為key并且是以string的形式存儲

echo '通過php用redis獲取>>>>>>>'.$redis->get('PHPREDIS_SESSION:' . session_id());

echo '';

echo '';

echo '通過php用session獲取>>>>>>>';

echo '';

var_dump($_SESSION['test_session']);

echo '';

5、測試,通過瀏覽器訪問

在redis里面查看是否有這個session

redis中的session值和瀏覽器訪問的值一樣,說明成功。

這里我說一下為什么我直接修改的php.conf文件,而不是php.ini文件

如果你兩個都配置了,它們的優(yōu)先級比較高的是php.conf文件。所以說如果你想配置php.ini文件,你還需要注釋掉php.conf中默認存本地的方式。這樣更復(fù)雜繁瑣。相信大家會選擇上面比較簡單的方式。

更多前沿PHP技術(shù)請搜索千鋒PHP,做真實的自己,用良心作教育

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容