在日常的web開發過程中,session共享有多種解決方式,常用的有以下幾種:
將session資訊以加密的方式儲存在客戶端瀏覽器的cookie中,session資訊會隨每次請求再次提交到伺服器上。
優點:
可以減輕伺服器端的壓力。
缺點
cookie大小是有限制的,只能儲存小部分使用者資訊;同時傳輸時,也會占用一部分頻寬資源。另外這種方式在客戶端禁用cookie的情況下會失效。
這種方式,是將session資訊儲存到關係型資料庫中,例如mysql,其他應用從資料庫中查出session資訊。該方法有一定的實用性,但是缺點同樣明顯:
1)、session的併發、讀寫均從資料庫中完成,對資料庫效能要求較高。
2)、需要額外新增session失效邏輯,包括在資料庫中更新和刪除session資訊。
這種方式對於可靠性要求較高的系統,可以採用,即使服務掛掉,也會儲存當時的會話資訊。
將session統一儲存到快取伺服器上,例如:redis、memcahe等。這樣可以保證比較高的讀、寫效能,同時這些快取伺服器都有資料失效機制,從而避免第二種共享方式中的第二條缺點。
該共享方式,在快取伺服器重啟的時候,裡面儲存的session也就丟失了,需要使用者重新建立回話。不過,該問題可以通過搭建快取集群來避免。
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-kju5gqx1-1598512374407)(images/image-20200827150433522.png)]
綜上所述,建議採用第三種方式。
Web專案開發中SESSION(會話)的使用
session會話物件在web應用系統中非常重要,session資源也非常寶貴,session會占用應用伺服器記憶體,門戶 的併發使用者在不斷增長,session物件也不斷增長。所以為了保證 效能,開發人員在開發應用程式時,應該遵循以下幾點 盡量保證session只儲存應用程式狀態資料,而不要儲存各...
web集群中常用的session同步解決方案及對比
隨著 的功能越來越多,使用者量越來越龐大,單節點模式已經嚴重不能支撐整個系統的正常運作,輕則使用者頁面訪問時間越來越慢,重則就會導致整個系統癱瘓。這時候 就需要優化或調整目前的架構,大部分人就會採用各種負載均衡軟體例如nginx hproxy lvs等,也有的採用分布式的方式把系統根據功能拆分成很多...
web開發 web前端開發常用技術總結歸納
技術選型規範規範 vue版本 2.x 前端路由 vue route 非同步請求 axios 全域性狀態管理 vuex css預處理器 sass less h5專案移動端適配規則 使用rem單位 rem px換算規則統一 小程式 使用小程式自帶rpx單位,適配規則參考小程式文件 公用元件庫 ui元件庫...