我們知道,Session是針對HTTP協定的限製而提出的一種維持客戶端和伺服器間維持會話連線狀態的機制。
造訪網站的來客會被指派一個唯一的識別符,也就是所謂的會話 ID。它要麼存放在客戶端的 cookie,要麼經由 URL 傳遞。
Session 的儲存方式預設是以檔案的形式存放在本地的一個硬碟目錄中,所以當Session比較多時,磁碟讀取檔案會比較慢。還有一點就是對於大站點,它無法實現多台伺服器會話的共用。
一個解決方案是用資料庫來存取 Session ,就能在不同伺服器之間共享 session 資訊了。
實現代碼下載
引擎 MyISAM 最好替換成 MEMORY 引擎,因為 MEMORY 採用內存表,所有數據存儲在內存,操作速度快,對於 Session 這種形式的數據正好適用。
在大流量的網站中,session 入庫存在效率不高、佔據資料庫 connection 資源等問題。針對這種情況,可以使用 Memcached、Redis 等 Key-Value 資料儲存方案實現高並發、大流量的 Session 儲存。