作者 主題: 超快速的實現 session on memcache  (閱讀 40242 次)

0 會員 與 1 訪客 正在閱讀本文。

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
超快速的實現 session on memcache
« 於: 2007-08-22 21:16 »
看文件總是會有新發現...
如果你用的 php, php-memcache 版本夠新...
可以很輕易的將 Session 用 memcached 保存了...

引用
session.save_path  string

    Defines a comma separated of server urls to use for session storage, for example "tcp://host1:11211, tcp://host2:11211".

    Each url may contain parameters which are applied to that server, they are the same as for the Memcache::addServer() method. For example "tcp://host1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"


代碼: [選擇]
<?php
$session_save_path 
"tcp&#58;//$host&#58;$port?persistent=1&weight=2&timeout=2&retry_interval=10,  ,tcp&#58;//$host&#58;$port  ";
ini_set&#40;'session.save_handler', 'memcache'&#41;;
ini_set&#40;'session.save_path', $session_save_path&#41;;
?>


http://tw.php.net/memcache
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

micmic3

  • 俺是博士!
  • *****
  • 文章數: 1693
    • 檢視個人資料
超快速的實現 session on memcache
« 回覆 #1 於: 2007-08-23 12:35 »
Y凱~問一下  Memcache 通常是用在那個地方呢..
問的原因是還沒有機會用到

ricky

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 669
    • 檢視個人資料
    • Ricky 碎碎唸
超快速的實現 session on memcache
« 回覆 #2 於: 2007-08-23 13:30 »
memcache的用途是在提供一個 "資料交換" 的空間
尤其是在多web server
卻又得共用session時
他是採用memory作為資料存放使用,所以速度很快。
採用tcp協定,跨Server交換資料也不是問題

舉個簡單的例子
如果你的系統中有一筆資料要提供給php程式以及ruby程式,甚至跨越不同Server
偏偏這個資料存取很頻繁(例如線上人數的即時統計)
使用DB或是檔案存放都不是個好主意(IO會很重)
這時候就是memcache上場的時候了
我的symfony作品:YOMOpets 寵物誌
有興趣可以一起來討論symfony喔
我的部落格:http://ricky.ez2.us/

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
超快速的實現 session on memcache
« 回覆 #3 於: 2007-08-23 13:49 »
引述: "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/
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

appleboy

  • 活潑的大學生
  • ***
  • 文章數: 224
    • 檢視個人資料
    • 小惡魔筆記
超快速的實現 session on memcache
« 回覆 #4 於: 2007-08-23 14:13 »
引述: "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:

歡迎來到 CodeIgniter 繁體中文討論區
My Blog:小惡魔 - 電腦技術 - 生活日記 - 美食介紹 - AppleBOY

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
超快速的實現 session on memcache
« 回覆 #5 於: 2007-08-23 15:14 »
引述: "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 若有需要還可以快速新增主機提供記憶體服務....
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

appleboy

  • 活潑的大學生
  • ***
  • 文章數: 224
    • 檢視個人資料
    • 小惡魔筆記
超快速的實現 session on memcache
« 回覆 #6 於: 2007-08-23 20:41 »
所以總結 大型網站就要朝 memcache 這個方式來發展了~

感謝Darkhero講解,又上了一課

歡迎來到 CodeIgniter 繁體中文討論區
My Blog:小惡魔 - 電腦技術 - 生活日記 - 美食介紹 - AppleBOY

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
超快速的實現 session on memcache
« 回覆 #7 於: 2007-08-23 22:41 »
引述: "appleboy"
所以總結 大型網站就要朝 memcache 這個方式來發展了~

感謝Darkhero講解,又上了一課


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

appleboy ...不用客氣拉..我也只是跟大家分享我所知道的作法...
..有機會你來分享喔~
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

appleboy

  • 活潑的大學生
  • ***
  • 文章數: 224
    • 檢視個人資料
    • 小惡魔筆記
超快速的實現 session on memcache
« 回覆 #8 於: 2007-08-24 00:22 »
引述: "Darkhero"


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

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


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

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

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

--

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

歡迎來到 CodeIgniter 繁體中文討論區
My Blog:小惡魔 - 電腦技術 - 生活日記 - 美食介紹 - AppleBOY

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
超快速的實現 session on memcache
« 回覆 #9 於: 2007-08-24 01:10 »
引述: "appleboy"
引述: "Darkhero"


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

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


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

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

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

--

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


差不多... NFS,NAS,SAN,或是其他可能的方式都是...
例如用亞馬遜的 S3 .....
http://www.amazon.com/gp/browse.html?node=16427261
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

micmic3

  • 俺是博士!
  • *****
  • 文章數: 1693
    • 檢視個人資料
超快速的實現 session on memcache
« 回覆 #10 於: 2007-08-24 11:26 »
NFS 可能不行...NFS 實太吃資源了

ricky

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 669
    • 檢視個人資料
    • Ricky 碎碎唸
超快速的實現 session on memcache
« 回覆 #11 於: 2007-08-24 12:52 »
引述: "appleboy"
引述: "Darkhero"


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

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


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

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

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

--

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


無名應該沒有弄吧 :D
有空可以去xdite看看吧
官方據說加掛了千萬等級的磁碟陣列
加上弄了一堆外援的proxy
三不五時還是可以看到叉燒包
還是別拿失敗的例子做參考
我的symfony作品:YOMOpets 寵物誌
有興趣可以一起來討論symfony喔
我的部落格:http://ricky.ez2.us/

appleboy

  • 活潑的大學生
  • ***
  • 文章數: 224
    • 檢視個人資料
    • 小惡魔筆記
超快速的實現 session on memcache
« 回覆 #12 於: 2007-08-24 14:55 »
引述: "ricky"


無名應該沒有弄吧 :D
有空可以去xdite看看吧
官方據說加掛了千萬等級的磁碟陣列
加上弄了一堆外援的proxy
三不五時還是可以看到叉燒包
還是別拿失敗的例子做參考


哈哈 看 xdite 的部落格 都是在寫無名的系統問題,不過我比較想學後面的技術,如何把照片分散在各台機器,又如何去連接呢?我知道無名背後的機器一定很大,圖片量非常誇張,至於無名好不好,我個人是覺得不好,哈~

歡迎來到 CodeIgniter 繁體中文討論區
My Blog:小惡魔 - 電腦技術 - 生活日記 - 美食介紹 - AppleBOY

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
超快速的實現 session on memcache
« 回覆 #13 於: 2007-08-27 11:04 »
半個月前才將 PHP session 改用 memcache, 真的蠻酷的  :lol:

micmic3

  • 俺是博士!
  • *****
  • 文章數: 1693
    • 檢視個人資料
超快速的實現 session on memcache
« 回覆 #14 於: 2007-08-27 11:05 »
引述: "yamaka"
半個月前才將 PHP session 改用 memcache, 真的蠻酷的  :lol:

呵 yakama 要分享一下嗎?

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
超快速的實現 session on memcache
« 回覆 #15 於: 2007-08-27 11:11 »
引述: "micmic3"
引述: "yamaka"
半個月前才將 PHP session 改用 memcache, 真的蠻酷的  :lol:

呵 yakama 要分享一下嗎?


呃.. 分享啥啊,

就下載, 編譯, 安裝, 設定 php.ini, 啟動 memcache ...

這樣而已啊  :lol:  :lol:

ricky

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 669
    • 檢視個人資料
    • Ricky 碎碎唸
超快速的實現 session on memcache
« 回覆 #16 於: 2007-08-27 12:42 »
前一陣子才剛把整個session處理改寫
改成用memcache來處理session
寫完後才看到這個令人想吐血的東西
代碼: [選擇]

session.save_path string

Defines a comma separated of server urls to use for session storage, for example "tcp://host1:11211, tcp://host2:11211".

Each url may contain parameters which are applied to that server, they are the same as for the Memcache::addServer() method. For example "tcp://host1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"

不過既然都寫了,那就認命嘍。
順便分享一下花了一個下午的"成果"吧
自己寫程式的習慣,會把一些常用的東西寫成class
像session處理,不太喜歡直接呼叫session_start,session_destroy
原因很簡單,如果需要變動session架構,例如改用memcache或是使用DB 或檔案
修改程式碼可是非常頭痛的事情。

底下是自己寫的一個session處理的class
利用session_set_save_handler
重設session的處理函數
其中有個需要注意的地方就是$Shutdown->Add('session_write_close');
因為php本身有快取,所以session會在程式結束時才會寫回
可是一但session的write處理函數是在定義在一個class的成員函數時
會發生問題
php的物件在程式結束前會先呼叫destruct,然後才執行結束。
可是session的write是在物件都已經被消滅後才會呼叫
這時候就會產生問題
因此php5提供了一個session_write_close
將他註冊到shutdown function中
避免這個狀況

代碼: [選擇]
<?php
 define
&#40;'SESS_LIFTTIME', 3600&#41;;
 
define&#40;'MEMCACHE_HOST', 'xxxx'&#41;;
 
define&#40;'MEMCACHE_PORT', 'xxxx'&#41;;
 
define&#40;'SESS_PREFIX','xxxx'&#41;;
 
define&#40;'SESSION_COMPRESSED',false&#41;;
 
class ShutdownClass
 
&#123;
  
private $ShutdownFunctions;
  function 
__construct&#40;&#41;&#123;$this->ShutdownFunctions=array&#40;&#41;;&#125;
  
function Add&#40;$Proc&#41; &#123;return array_push&#40;$this->ShutdownFunctions,$Proc&#41;;&#125;
  
function Proc&#40;&#41;
  
&#123;
   
foreach&#40;$this->ShutdownFunctions as $Index=>$Function&#41;
   
&#123;
    
if&#40;is_array&#40;$Function&#41;&#41;
     
$Function[0&#93;->$Function[1&#93;&#40;&#41;;
    
else
     
$Function&#40;&#41;;
   
&#125;
  
&#125;
 
&#125;
 
$Shutdown=new ShutdownClass&#40;&#41;;
 
register_shutdown_function&#40;array&#40;$Shutdown,'Proc'&#41;&#41;;
 
class SessionClass
 
&#123;
  
private $Memcache=false;
  private 
$SessionLifeTime;
  function 
Open&#40;$SavePath='',$SessionName=''&#41;
  
&#123;
   
if&#40;!$this->Memcache&#41; return false;
   
return true;
  &
#125;
  
function Close&#40;&#41;
  
&#123;
   
return true;
  &
#125;
  
function Read&#40;$ID&#41;
  
&#123;
   
if&#40;!$this->Memcache&#41; return false;
   
$ID=SESS_PREFIX.$ID;
   return 
$this->Memcache->get&#40;$ID&#41;;
  
&#125;
  
function Write&#40;$ID,$Data&#41;
  
&#123;
   
if&#40;!$this->Memcache&#41; return false;
   
$ID=SESS_PREFIX.$ID;
   
$this->Memcache->delete&#40;$ID&#41;;
   
return $this->Memcache->add&#40;$ID,$Data,SESSION_COMPRESSED,$this->SessionLifeTime&#41;;
  
&#125;
  
function Gc&#40;$MaxLifeTime&#41;
  
&#123;
   
return true;
  &
#125;
  
function __construct&#40;$LifeTime=false&#41;
  
&#123;
   
global $Shutdown;
   if&
#40;!session_set_save_handler&#40;
    
array&#40;&$this,'Open'&#41;,array&#40;&$this,'Close'&#41;,
    
array&#40;&$this,'Read'&#41;,array&#40;&$this,'Write'&#41;,
    
array&#40;&$this,'Destroy'&#41;,array&#40;&$this,'Gc'&#41;&#41;&#41;
    
throw new Exception&#40;'Session start error&#58;session_set_save_handler error'&#41;;
   
$Shutdown->Add&#40;'session_write_close'&#41;;
   
if&#40;$LifeTime===false&#41; 
    
$this->SessionLifeTime=SESS_LIFTTIME;
   else
    
$this->SessionLifeTime=$LifeTime;
  &
#125;
  
function __destruct&#40;&#41;
  
&#123;
   
if&#40;$this->Memcache&#41; $this->Memcache->close&#40;&#41;;
  
&#125;
  
function Start&#40;&#41;
  
&#123;
   
$this->Memcache=new Memcache&#40;&#41;;
   
if&#40;!$this->Memcache->connect&#40;MEMCACHE_HOST,MEMCACHE_PORT&#41;&#41;
    
throw new Exception&#40;'Session start error&#58;memcache error'&#41;;
   
session_start&#40;&#41;;
  
&#125;
  
function Destroy&#40;$ID=false&#41;
  
&#123;
   
if&#40;$ID===false&#41; return true;
   
$ID=SESS_PREFIX.$ID;
   
$this->Memcache->delete&#40;$ID&#41;;
   
return true;
  &
#125;
 
&#125;
?>
我的symfony作品:YOMOpets 寵物誌
有興趣可以一起來討論symfony喔
我的部落格:http://ricky.ez2.us/

johnlp

  • 懷疑的國中生
  • **
  • 文章數: 86
    • 檢視個人資料
超快速的實現 session on memcache
« 回覆 #17 於: 2007-09-30 18:27 »
抓不到for php 4.4.7 win32版的dll
殘念...
我最愛的楓之谷小遊戲網-有很多海綿寶寶遊戲

FIEND

  • 鑽研的研究生
  • *****
  • 文章數: 700
    • 檢視個人資料
    • http://bbs.ecstart.com
回覆: 超快速的實現 session on memcache
« 回覆 #18 於: 2009-06-25 09:35 »
@@

忍不住 插一下嘴....

RE :

db session 可以跨主機,但是受限 database memory 大小...且要消耗本來就很繁忙的 db 資源..   ( 可以用 my.ini 加大 heap table 的容量 )

file session 不可跨主機,一樣受限在本體主機的 memory ... ( 以前我們都用 NFS 來做 負載平衡 )

memcache 則可以跨主機以外,更可以將多台主機都共享出 memory 做成一個超大型的 share memory 若有需要還可以快速新增主機提供記憶體服務....
( 有些快取存取行為 全都用 memory 來做容量 可能會不夠用 : 例如 - 使用者行為及圖片快取 )

##########

我想每一種方式都還是有它存在的價值.

雖然 這篇文章把 memcache promote 的很兇...

可是 在很多環境和行為下...

它們都有存在的價值.

而且 它不是只有在 session 的應用上 來的好用.

如果把 畫面邏輯 內容邏輯 二刀畫在 三層式架構上 ....

可以發現 這個tool 可以應用的層面比想像中的廣太多了.




« 上次編輯: 2009-06-25 10:02 由 FIEND »
你累了嗎? 這樣不行 , 人要比 LINUX 兇 @@ " ......

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
回覆: 超快速的實現 session on memcache
« 回覆 #19 於: 2009-06-25 10:17 »
@@

忍不住 插一下嘴....

RE :

db session 可以跨主機,但是受限 database memory 大小...且要消耗本來就很繁忙的 db 資源..   ( 可以用 my.ini 加大 heap table 的容量 )

file session 不可跨主機,一樣受限在本體主機的 memory ... ( 以前我們都用 NFS 來做 負載平衡 )

memcache 則可以跨主機以外,更可以將多台主機都共享出 memory 做成一個超大型的 share memory 若有需要還可以快速新增主機提供記憶體服務....
( 有些快取存取行為 全都用 memory 來做容量 可能會不夠用 : 例如 - 使用者行為及圖片快取 )

##########

我想每一種方式都還是有它存在的價值.

雖然 這篇文章把 memcache promote 的很兇...

可是 在很多環境和行為下...

它們都有存在的價值.

而且 它不是只有在 session 的應用上 來的好用.

如果把 畫面邏輯 內容邏輯 二刀畫在 三層式架構上 ....

可以發現 這個tool 可以應用的層面比想像中的廣太多了.

哈哈..這篇已經是很久以前寫的了...

file , db, memecache 都有他的好處..

這邊主要是考慮到用 memcache 來存 session data 的情況..

各種都有他的優點...

用 db 的時候由於工具的豐富, 且SQL架構的關係..可以進行像是即時的線上 session 計算. 顯示線上使用者等動作...

memcache 當然是不只有用在 session 囉..

畢竟是個 cache 可以 cache 的東西很多, 舉凡 db result, template result, temp static html page 等都可以...
主要還是看開發人員的想法跟應用.. :) ...
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

FIEND

  • 鑽研的研究生
  • *****
  • 文章數: 700
    • 檢視個人資料
    • http://bbs.ecstart.com
回覆: 超快速的實現 session on memcache
« 回覆 #20 於: 2009-06-25 10:39 »

哈哈..這篇已經是很久以前寫的了...

file , db, memecache 都有他的好處..

這邊主要是考慮到用 memcache 來存 session data 的情況..

各種都有他的優點...

用 db 的時候由於工具的豐富, 且SQL架構的關係..可以進行像是即時的線上 session 計算. 顯示線上使用者等動作...

memcache 當然是不只有用在 session 囉..

畢竟是個 cache 可以 cache 的東西很多, 舉凡 db result, template result, temp static html page 等都可以...
主要還是看開發人員的想法跟應用.. :) ...

@@" 我沒有吐糟你的意思啦... cache 的用法 對你來說應該沒問題了.

這對 寫一二年程式的 web programmer 應該是常識.

何況你都寫這麼多年了.


我只是覺得~這篇 promote memcache 太兇了...

如果要做 " 行為 或是 多復合式條件加總.......... 等的 cache " memcache 馬上就打搶了.









你累了嗎? 這樣不行 , 人要比 LINUX 兇 @@ " ......