婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > php實現session共享的實例方法

php實現session共享的實例方法

熱門標簽:長春人工外呼系統服務商 廣州防封卡外呼系統多少錢一個月 外呼系統撥打暫時無法接通 怎么向銷售公司推銷外呼系統 仁和怎么申請400開頭的電話 江西手機自動外呼防封系統是什么 哪里辦理400電話 廣東地市地圖標注 高德地圖標注家

為什么要session共享?

現在稍微大一點的網站基本上都有好幾個子域名,比如www.xz577.com, xz577.com, vip.xz577.com,這些網站如果需要共用用戶登錄信息,那么就需要做到session共享,當然前提是有相同的主域名。

PHP的session原理?

客戶端訪問php頁面,執行session_start,生成session_id,一般我們是把session_id存儲到cookie上,session內容保存在服務端,

客戶端訪問訪問不同的頁面都會把session_id傳到服務端,通過session_id來獲取session內容。

流程是這樣,可是不同的服務器會對同一個客戶端產生不同的session_id,這樣的話不同服務器就不能得到相同的session內容。

而且PHP 默認的 SESSION 數據都是分別保存在本服務器的文件系統中。

所以我們要解決session共享,就必須解決兩個問題:

多臺服務器用同一個session_id

這個比較容易解決,只要在php中設置存session_id的cookie域名為網站主域就可以

打開PHP.ini, 設置session.cookie_domain = .feiniu.com,

當然也可以在php代碼當中設置ini_set("session.cookie_domain","feiniu.com");

多臺服務器用同一個session_id訪問到相同的session內容

要實現這點,就必須把session內容存儲到讓所有服務器都能訪問到的地方,php的session內容是默認存儲到本服務器的文件中的,

一般的解決方案是存入數據庫,memcache或者redis這種緩存服務器,當然用默認的文件存儲方式也可以,用NFS統一存儲。

如何選擇存儲引擎?

默認文件存儲:

這種方式的session銷毀依托于php垃圾收集器,在高并發或銷毀時間較長的情況下,在SESSION目錄下產生大量文件,當然可以設置

分級目錄進行 SESSION 文件的保存。

這會導致兩個問題:第一、查找文件慢;第二,每個目錄下可容納的文件數是有限的,可能會導致新SESSION儲存失敗。

數據庫存儲:

把Session存儲在數據庫里可以防止Session數據被垃圾收集器刪除,可以固化存儲session數據。

但是用數據庫來同步session,會加大數據庫的IO,增加數據庫的負擔。而且數據庫讀寫速度較慢,不利于session的適時同步。

memcache存儲:

以這種方式來同步session,不會加大數據庫的負擔,并且安全性比較高,把session放到內存里面,比從文件中讀取要快很多。

但是memcache把內存分成很多種規格的存儲塊,有塊就有大小,這種方式也就決定了,memcache不能完全利用內存,會產生內存碎片,

如果存儲塊不足,還會產生內存溢出。

那些不需要“分布”的,不需要共享的,或者干脆規模小到只有一臺服務器的應用,memcached不會帶來任何好處,相反還會拖慢系統

效率,因為網絡連接同樣需要資源。

redis存儲:與memcache相比,redis訪問稍稍慢一點點,好處是:

redis支持的數據結構較多,可以存儲數組或對象,而memcache只能存儲字符串。

在session機器重啟的情況下,memcache所有用戶都必須重新獲得 session,而redis不會。3.在突然涌來大量用戶產生了很多數據把

存儲 session 的機器內存占滿了的情況下,memcache會罷工,所有key都沒過期的話就不停的覆蓋最后寫入的數據,而redis只是會變

慢,不會影響程序的邏輯

您可能感興趣的文章:
  • PHP實現cookie跨域session共享的方法分析
  • PHP使用Redis實現Session共享的實現示例
  • PHP實現負載均衡session共享redis緩存操作示例
  • PHP簡單實現HTTP和HTTPS跨域共享session解決辦法

標簽:惠州 廈門 梅河口 黔東 海北 湘西 文山 濮陽

巨人網絡通訊聲明:本文標題《php實現session共享的實例方法》,本文關鍵詞  php,實現,session,共享,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《php實現session共享的實例方法》相關的同類信息!
  • 本頁收集關于php實現session共享的實例方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 井陉县| 文化| 六安市| 宁海县| 晋江市| 温宿县| 和平区| 合江县| 泸州市| 广元市| 丹东市| 阿克苏市| 西吉县| 科技| 河源市| 遵义市| 金寨县| 平乡县| 巴林右旗| 青海省| 昌黎县| 金阳县| 镇赉县| 广德县| 靖远县| 曲阳县| 伊吾县| 双辽市| 合水县| 夏邑县| 邢台市| 宿州市| 北安市| 洛川县| 龙陵县| 桦川县| 长垣县| 连州市| 蕉岭县| 纳雍县| 名山县|