溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php+redis如何實現(xiàn)多臺服務(wù)器內(nèi)網(wǎng)存儲session并讀取

發(fā)布時間:2021-07-07 10:47:06 來源:億速云 閱讀:123 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)php+redis如何實現(xiàn)多臺服務(wù)器內(nèi)網(wǎng)存儲session并讀取的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

大型網(wǎng)站由于大并發(fā)的問題會導(dǎo)致系統(tǒng)出現(xiàn)詭異的崩潰性問題這著實讓人很是蛋疼,首先考慮的就是負(fù)載均衡服務(wù)器來處理這個,當(dāng)然數(shù)據(jù)庫的性能也是非常非常重要的,今天就說下在負(fù)載均衡情況下對于session這個問題如何處理,說實話不處理session其實也是可以的,但是在實際的情況中會出現(xiàn)一些讓用戶體驗非常蛋疼的問題,比如購物下單的時候負(fù)載均衡調(diào)配服務(wù)器來回切換的過程中session丟失了,這個時候就尷尬了,用戶就會郁悶我擦這什么鬼,于是乎各種擔(dān)心就會出現(xiàn),這破網(wǎng)站是不是有什么安全問題等等。下面就來說說這個問題的解決方案,配置php結(jié)合redis來存儲session,假如我現(xiàn)在有2個(至少)服務(wù)器在做負(fù)載均衡:

1,主服務(wù)器安裝php-redis 以及redis服務(wù)器端這個不多說去執(zhí)行命令行yum或apt-get什么的,輔服務(wù)器只需要安裝php-redis(這兩個服務(wù)器必須在一個內(nèi)網(wǎng)中不然外網(wǎng)訪問著實不安全的)

2,來吧騷年打開的你服務(wù)器上的php.ini文件:

先看看php extension=redis.so是否開啟 

session.save_handler = redis

session.save_path = "tcp://【redis主服務(wù)器的內(nèi)網(wǎng)ip】:6379″ 

主和輔服務(wù)器的php-redis需要綁定一下ip(ip一致主服務(wù)器的redis-server)

redis.conf

bind【redis主服務(wù)器的內(nèi)網(wǎng)ip】

這個為了安全起見設(shè)置一個redis鏈接的密碼:

打開 vim /etc/redis/redis.conf

requirepass 通信密碼(修改這里)

ok配置好重啟redis :

sudo service redis-server restart

3,測試Redis連接和驗證:

redis-cli -h 【redis主服務(wù)器內(nèi)網(wǎng)ip】

如果設(shè)置了redis鏈接密碼,現(xiàn)在嘗試訪問數(shù)據(jù),應(yīng)該得到一個AUTH錯誤接下來執(zhí)行下

 > redis-cli

redis內(nèi)網(wǎng)ip:6397> keys *

ok了到這步的時候已經(jīng)完成99%了還差一步就是各種重啟額

service apache2 restart

service php5-fpm restart

4,測試session是否寫入redis:

<?php

 session_start();
$_SESSION['bieanju'] = array('name' => '別安駒', 'num' => 'http://www.bieanju.com/');
//連接redis
$redis = $this->connectRedis();
//
//檢查session_id
echo 'session_id:' . session_id() . '<br/>';

//redis存入的session(redis用session_id作為key,以string的形式存儲)
echo 'redis_session:' . $redis->get('PHPREDIS_SESSION:' . session_id()) . '<br/>';

echo 'php_session:' . json_encode($_SESSION['class']);
print_r($_SESSION['bieanju']);

?>

速來圍觀,沒錯session寫入redis了可以讀取了,ok至此對于負(fù)載均衡的session也就基本解決了,剩下的就是在項目如何應(yīng)用那就看你自己的業(yè)務(wù)需要。

感謝各位的閱讀!關(guān)于“php+redis如何實現(xiàn)多臺服務(wù)器內(nèi)網(wǎng)存儲session并讀取”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI