使用Memcached緩存實現(xiàn)Session共享技巧
使用 Memcached 實現(xiàn) Session 共享
應(yīng)用場景
當有很多用戶的時候,這些用戶的登錄位置在各個不同的服務(wù)器上,因為 session 是生成在服務(wù)器上的,當用戶互訪的時候,有的時候發(fā)現(xiàn)自己有權(quán)限,有時候發(fā)現(xiàn)自己沒有權(quán)限。因為緩存是集中式的,所有的緩存都在一起,那么就可以把 session 放到 memcached 緩存中。所有服務(wù)器都可以在公用的服務(wù)器上面來取 session,這樣無論用戶在哪一臺服務(wù)器上面登錄,都有正確的 session。這樣的話,有兩個優(yōu)點,第一,解決了 session 共享的問題。第二,當用戶量很大的時候,session 是存放在服務(wù)器上面的,因此就會增加了磁盤的 IO,但是如果放在緩存中,性質(zhì)則完全不一樣。
實現(xiàn)方式
設(shè)置 php.ini 配置文件
vim /etc/php/7.2/fpm/php.ini
- 將 seesion 存儲方式改為 memcached
默認 php 是以文件的形式存放 session 的
session.save_handler = files
因此需要修改成 memcached
session.save_handler = "memcached"
- 修改 session 存放位置
默認 php 注釋掉了
session.save_path = "/var/lib/php/sessions"
修改為
注意:192.168.174.128 是我虛擬機的 ip 地址,這里需要修改成你 memcached 服務(wù)器的 ip 地址
# 對于 php 5.6 及以下,需要寫成如下 session.save_path = "tcp://192.168.174.128:11211" # 對于 php 7 以上可以直接寫成 session.save_path = "192.168.174.128:11211"
如果只想單個 php 文件,取 session 的時候直接取緩存中取的話,可以如下設(shè)置
vim test.php
<?php ini_set("session.save_hander", "memcached"); ini_set("session.save_path", "192.168.174.128:11211");
另外還可以采用 apache 或者 nginx 的方式設(shè)置
將 session 放到 memcached 中的缺點:
集群錯誤會導(dǎo)致用戶無法登陸、memcached 的回收機制可能會導(dǎo)致用戶掉線
以上就是使用Memcached緩存實現(xiàn)Session共享技巧的詳細內(nèi)容,更多關(guān)于Memcached Session共享的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
批量獲取memcache值并按key的順序返回的實現(xiàn)代碼
一臺memcache時返回是正確的,在有多臺memcache時就無法一一對應(yīng)的按順序返回。2011-06-06PHP數(shù)組排序函數(shù)合集 以及它們之間的聯(lián)系分析
本篇文章是對PHP數(shù)組排序函數(shù)合集以及它們之間的聯(lián)系進行了詳細的分析介紹,需要的朋友參考下2013-06-06詳解WordPress中添加和執(zhí)行動作的函數(shù)使用方法
這篇文章主要介紹了WordPress中添加和執(zhí)行動作的函數(shù)使用方法,分別講解了add_action()與do_action()的用法,需要的朋友可以參考下2015-12-12PHP調(diào)用MySQL的存儲過程的實現(xiàn)代碼
MySQL好像從5.0開始才引入存儲過程,反正以前做應(yīng)用的時候從沒碰過,不過現(xiàn)在因為主要作內(nèi)部系統(tǒng)2008-08-08thinkphp(php)插件鉤子(hooks)分析的簡單實現(xiàn)機制
現(xiàn)在主流的cms或者blog等系統(tǒng)中,都內(nèi)置的有插件系統(tǒng),但是層層深入、剖析實現(xiàn)的方式,其實都是最簡單的鉤子的復(fù)雜化的實現(xiàn)。這篇文章主要介紹了thinkphp(php)插件鉤子(hooks)分析的簡單實現(xiàn)機制,需要的朋友可以參考下2023-03-03站長助手-網(wǎng)站web在線管理程序 v1.0 下載
站長助手-網(wǎng)站web在線管理程序 v1.0 下載...2007-05-05