相信很多人用過(guò)數(shù)據(jù)庫(kù),Memcache以及文件存儲(chǔ)SESSION,那么Rdis可以存儲(chǔ)SESSION嗎俱济?答案是肯定的胰挑。
具體環(huán)境:
一臺(tái)apache+PHP的服務(wù)器(yum安裝remi源及配置 httpd-2.2.15 php-5.4.45)
一臺(tái)Redis服務(wù)器(yum安裝remi源及配置 redis-3.2.6)
保證apache服務(wù)器可以訪問(wèn)redis服務(wù)器的6379端口
具體步驟:
1、在apache+php服務(wù)器上安裝redis擴(kuò)展
點(diǎn)擊(此處)折疊或打開(kāi)
yum install php-pecl-redis
2语卤、測(cè)試php是否安裝擴(kuò)展成功
more index.php
點(diǎn)擊(此處)折疊或打開(kāi)
php
phpinfo()
?>
瀏覽器訪問(wèn)如下:
如上圖說(shuō)明安裝成功挤忙,這里版本號(hào)和redis本身的版本號(hào)不同霜威,大家可以忽略。
3册烈、然后修改php.conf文件侥祭,可能很多人會(huì)疑問(wèn)不是修改php.ini文件嗎?一會(huì)下面我會(huì)說(shuō)茄厘。
點(diǎn)擊(此處)折疊或打開(kāi)
more /etc/httpd/conf.d/php.conf
將如下兩行:
點(diǎn)擊(此處)折疊或打開(kāi)
php_value session.save_handler?"files"
php_value session.save_path?"/var/lib/php/session"
修改為如下內(nèi)容
點(diǎn)擊(此處)折疊或打開(kāi)
php_value session.save_handler?"redis"
php_value session.save_path?"tcp://192.168.9.131:6379"
這里有一些文章里面加了tcp,有的沒(méi)有加谈宛,本人測(cè)試過(guò)加或者不加session都可以存放在redis里面次哈。
我個(gè)人理解的意思是:加了tcp表示tcp協(xié)議,如果沒(méi)有加則表示通過(guò)http協(xié)議吆录。如果不對(duì)請(qǐng)勿噴~~
保存退出后重新啟動(dòng)httpd服務(wù)
4窑滞、寫(xiě)一個(gè)測(cè)試頁(yè)面test.php,內(nèi)容如下:
點(diǎn)擊(此處)折疊或打開(kāi)
header("Content-type:text/html;charset=utf-8");
session_start();//這個(gè)很重要
$_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的形式存儲(chǔ)
echo '通過(guò)php用redis獲取>>>>>>>'.$redis->get('PHPREDIS_SESSION:' . session_id());
echo '
';
echo '
';
echo '通過(guò)php用session獲取>>>>>>>
';
echo '
';
var_dump($_SESSION['test_session']);
echo '';
5恢筝、測(cè)試哀卫,通過(guò)瀏覽器訪問(wèn)
在redis里面查看是否有這個(gè)session
redis中的session值和瀏覽器訪問(wèn)的值一樣,說(shuō)明成功撬槽。
這里我說(shuō)一下為什么我直接修改的php.conf文件此改,而不是php.ini文件
如果你兩個(gè)都配置了,它們的優(yōu)先級(jí)比較高的是php.conf文件侄柔。所以說(shuō)如果你想配置php.ini文件共啃,你還需要注釋掉php.conf中默認(rèn)存本地的方式占调。這樣更復(fù)雜繁瑣。相信大家會(huì)選擇上面比較簡(jiǎn)單的方式移剪。
更多前沿PHP技術(shù)請(qǐng)搜索千鋒PHP究珊,做真實(shí)的自己,用良心作教育