1. 程式人生 > >77)PHP,將session數據寫到不用的存儲介質中

77)PHP,將session數據寫到不用的存儲介質中

技術分享 com apach 服務器集群 apache strong 文件 and src

首先我的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數據寫到不用的存儲介質中