77)PHP,將session數據寫到不用的存儲介質中
首先我的siession數據可以寫到:文件中 session數據區 或者數據庫中,
那麽怎麽將文件中的session數據或者session數據區的數據寫到 數據庫中,,又或者任意挑選兩個不同的介質互寫,
所以也就是重寫session的存儲機制。
目的:
①便於管理大量的session數據
②便於Web服務器集群(就是多個apache服務器,因為一臺可能不夠用)共享session數據。(其實可以有一臺專門存儲session數據的服務器,然後有多臺Web服務器,這樣多個Web服務器共享概念股session數據)
方案:
入庫, 如內存,
下面是以入庫的機制來實驗的:
①實現過程:①定義(實現)與存儲相關的函數。,然後將其設置為session機制需要存儲的函數(其實和那個自動加載函數思想一樣,就是告訴PHP,使用我自己定義的這個函數作為我的session存儲函數)
session機制,共需要6個存儲函數
(這個順序可以打亂)
那個userSessionGC()就是一個垃圾回收函數,就是管理那些臨時文件(數據區)的函數。
設置session的存儲函數,靠的是PHP的 Session_set_save_handler(開始處理器,結束處理器,讀處理器,寫處理器,刪除處理器,垃圾回收處理器)函數來完成
所以就是這個樣子:
(這個順序不能打亂)
然後,我在我的session文件中引入那個設置存儲機制的文件:
註意要保證在session基址開啟前要保證:
77)PHP,將session數據寫到不用的存儲介質中