首頁 > 資料庫 > Redis > 主體

redis怎麼存session

(*-*)浩
發布: 2019-11-21 10:12:37
原創
3338 人瀏覽過

redis怎麼存session

Redis儲存session的需要考慮問題:

session資料如何在Redis中儲存? session屬性變更何時觸發儲存? (推薦學習:Redis影片教學

實作:

考慮到session中資料類似map的結構,採用redis中hash儲存session資料比較合適,如果使用單一value儲存session數據,不加鎖的情況下,就會存在session覆蓋的問題,因此使用hash儲存session,每次只保存本次變更session屬性的數據,避免了鎖處理,性能更好。

如果每改一個session的屬性就觸發存儲,在變更較多session屬性時會觸發多次redis寫操作,對性能也會有影響,我們是在每次請求處理完後,做一次session的寫入,並且之寫入變更過的屬性。

如果本次沒有做session的更改, 是不會做redis寫入的,僅當沒有變更的session超過一個時間閥值(不變更session刷新過期時間的閥值),就會觸發session保存,以便session能夠延長有效期限。

兩種實作方式:

session集中儲存(redis,memcached,hbase等)。

不同伺服器上session資料進行複製,兩種方式的優缺點,大家應該一目了然。

基於session集中儲存的實作方案:

新增Filter,攔截請求,包裝HttpServletRequest

改寫getSession方法,從session儲存中獲取session數據,傳回自訂的HttpSession實作

在產生新Session後,寫入sessionid到cookie中

以上是redis怎麼存session的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板