php+redis實現多台伺服器內網儲存session並讀取

來源:互聯網
上載者:User

標籤:安裝   ssi   bin   配置   art   儲存   nec   ini檔案   過程   

大型網站由於大並發的問題會導致系統出現詭異的崩潰性問題這著實讓人很是蛋疼,首先考慮的就是負載平衡伺服器來處理這個,當然資料庫的效能也是非常非常重要的,今天就說下在負載平衡情況下對於session這個問題如何處理,說實話不處理session其實也是可以的,但是在實際的情況中會出現一些讓使用者體驗非常蛋疼的問題,比如購物下單的時候負載平衡調配伺服器來回切換的過程中session丟失了,這個時候就尷尬了,使用者就會鬱悶我擦這什麼鬼,於是乎各種擔心就會出現,這破網站是不是有什麼安全問題等等。下面就來說說這個問題的解決方案,配置php結合redis來儲存session,假如我現在有2個(至少)伺服器在做負載平衡:

1,主伺服器安裝php-redis 以及redis伺服器端這個不多說去執行命令列yum或apt-get什麼的,輔伺服器只需要安裝php-redis(這兩個伺服器必須在一個內網中不然外網訪問著實不安全的)

2,來吧騷年開啟的你伺服器上的php.ini檔案:

先看看php extension=redis.so是否開啟session.save_handler = redissession.save_path = "tcp://【redis主伺服器的內網ip】:6379″ 

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

redis.confbind【redis主伺服器的內網ip】

這個為了安全起見設定一個redis連結的密碼:

開啟 vim /etc/redis/redis.confrequirepass 通訊密碼(修改這裡)

 ok配置好重啟redis :sudo service redis-server restart

3,測試Redis串連和驗證:

redis-cli -h 【redis主伺服器內網ip】

如果設定了redis連結密碼,現在嘗試訪問資料,應該得到一個AUTH錯誤接下來執行下

> redis-cliredis內網ip:6397> keys *

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

service apache2 restartservice php5-fpm restart

 4,測試session是否寫入redis:

<?php session_start();$_SESSION[‘bieanju‘] = array(‘name‘ => ‘別安駒‘, ‘num‘ => ‘http://www.bieanju.com/‘);//串連redis$redis = $this->connectRedis();////檢查session_idecho ‘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至此對於負載平衡的session也就基本解決了,剩下的就是在項目如何應用那就看你自己的業務需要。

 最後在說一下php是世界上最好的語言,呵呵……

php+redis實現多台伺服器內網儲存session並讀取

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.