技術討論區 > PHP程式設計討論區

超快速的實現 session on memcache

<< < (2/5) > >>

Darkhero:

--- 引述: "appleboy" ---
--- 引述: "Darkhero" ---
--- 引述: "ricky" ---memcache的用途是在提供一個 "資料交換" 的空間
尤其是在多web server
卻又得共用session時
他是採用memory作為資料存放使用,所以速度很快。
採用tcp協定,跨Server交換資料也不是問題

舉個簡單的例子
如果你的系統中有一筆資料要提供給php程式以及ruby程式,甚至跨越不同Server
偏偏這個資料存取很頻繁(例如線上人數的即時統計)
使用DB或是檔案存放都不是個好主意(IO會很重)
這時候就是memcache上場的時候了
--- 引用結尾 ---


是的..在大型系統這是很重要的東西喔...
也可以放 cache , 像是 資料庫的 result , Smarty 的 static page cache 等可以 cache 一份.放在 memcache 中就可以跨主機共享...
應用事實上很多種。

facebook 聽說用了上百台電腦做 memcache server 群....
http://blog.gslin.org/archives/2007/08/08/1261/
--- 引用結尾 ---


我比較想知道如果 session 存在 db 跟 存在檔案 哪個速度比較快

哪個吃 I/O比較重~  因為我看 phpbb的code 他是把session寫到資料表裡面

在讀取的~ 這跟平常如果是存在 檔案上的方式比較不同~ :lol:
--- 引用結尾 ---


檔案可能會快一點喔...
DB 好處是可以快速搜索跟排序等...
但是每次使用的後要經由 connect , auth , query 等動作...
加上他原本也是放在 files 裡面,雖然有 query cache 會加速,但是在大量存取的時候跟系統其他 query 搶 mysql 資源,似乎也不太好....

通常用 database 存 session 的時候資料表會用 heap (memory) 也是為了加快存取,減少硬體 io ...
當然同樣的做法,也很多人把 file session 的目錄獨立 mount 為 ram disk 來加快存取減少 io ...

但是這兩種做法跟 memcache 最大的差異應該是擴充性...
db session 可以跨主機,但是受限 database memory 大小...且要消耗本來就很繁忙的 db 資源..
file session 不可跨主機,一樣受限在本體主機的 memory ...
memcache 則可以跨主機以外,更可以將多台主機都共享出 memory 做成一個超大型的 share memory 若有需要還可以快速新增主機提供記憶體服務....

appleboy:
所以總結 大型網站就要朝 memcache 這個方式來發展了~

感謝Darkhero講解,又上了一課

Darkhero:

--- 引述: "appleboy" ---所以總結 大型網站就要朝 memcache 這個方式來發展了~

感謝Darkhero講解,又上了一課
--- 引用結尾 ---


這是以目前我知道的比較好的跨主機session+share memory 解決方案,另外還有像是跨主機的檔案系統等問題需要解決....

appleboy ...不用客氣拉..我也只是跟大家分享我所知道的作法...
..有機會你來分享喔~

appleboy:

--- 引述: "Darkhero" ---

這是以目前我知道的比較好的跨主機session+share memory 解決方案,另外還有像是跨主機的檔案系統等問題需要解決....

appleboy ...不用客氣拉..我也只是跟大家分享我所知道的作法...
..有機會你來分享喔~
--- 引用結尾 ---


跨主機的檔案系統問題?我現在是在想像無名小站的檔案系統怎麼弄的

每天上傳量還蠻大的,他如何去分配空間,且上傳的時候怎麼傳到其他機器去~

這算是跨主機的檔案系統嗎?

--

我還沒有什麼能力可以分享經驗,我還有很多需要向大家學習

Darkhero:

--- 引述: "appleboy" ---
--- 引述: "Darkhero" ---

這是以目前我知道的比較好的跨主機session+share memory 解決方案,另外還有像是跨主機的檔案系統等問題需要解決....

appleboy ...不用客氣拉..我也只是跟大家分享我所知道的作法...
..有機會你來分享喔~
--- 引用結尾 ---


跨主機的檔案系統問題?我現在是在想像無名小站的檔案系統怎麼弄的

每天上傳量還蠻大的,他如何去分配空間,且上傳的時候怎麼傳到其他機器去~

這算是跨主機的檔案系統嗎?

--

我還沒有什麼能力可以分享經驗,我還有很多需要向大家學習
--- 引用結尾 ---


差不多... NFS,NAS,SAN,或是其他可能的方式都是...
例如用亞馬遜的 S3 .....
http://www.amazon.com/gp/browse.html?node=16427261

導覽

[0] 文章列表

[#] 下頁

[*] 上頁

前往完整版本