程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> Memcached解決單台服務器故障問題,memcached單台

Memcached解決單台服務器故障問題,memcached單台

編輯:C#入門知識

Memcached解決單台服務器故障問題,memcached單台


<beitmemcached>
    <add key="name1" value="server1:port" />
    <add key="name2" value="server1:port,server2:port,server3:port"/>
</beitmemcached>

我使用的客戶端是BeITMemcached,配置文件可以有兩種方式,如上面代碼,有單台配置和多台配置

 

問題:

    在用單台服務器配置時,如果這台memecache服務器掛掉的話,那麼客戶端這邊該緩存節點就使用不了了,影響程序的運行

    在用多台配置時,如果其中一台掛掉,你存入緩存的時候,客戶端會根據你緩存的key值,用一致性hash算法來選擇存入哪台緩存服務器,如果你運氣不好,正好存到了那台有問題的服務器上,對不起,寫入失敗。

 

解決方案:

    使用多台配置方案,修改客戶端源代碼,如果其中一台服務器掛掉,在緩存操作失敗的時候,將該有問題的緩存服務器剔除客戶端集合,比如有A,B,C三台memcache服務,如果B掛了,在操作緩存的時候,會有異常,這時候將B從該序列中剔除,只使用A,C來進行操作;

    設定一個檢測間隔時間,每次操作緩存時,在間隔時間之後,都會檢測有問題的服務器,如果服務器恢復正常,則將其重新加入緩存服務器集合中。

下載地址:http://pan.baidu.com/s/1eQtOO6Y

其他解決辦法:

可以使用memagent來對memcache進行集群配置,不過我感覺每台服務器都要安裝一個軟件,各種配置比較麻煩,我的方法比較簡單,自己感覺還是很實用的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved