緩存服務器的建立原理分析
更新時間:2008年10月10日 09:51:09 作者:
通常情況下我們運行程序的過程中會產(chǎn)生一些中間數(shù)據(jù),這些中間數(shù)據(jù)需要在將來的某個時間讀取。這就要求我們要把它存在一個提供高速存取的地方,最好的選擇就是內(nèi)存中。
好了。這樣我們服務端的代碼就算搞定了。
下面我們來發(fā)布服務供客戶端調用
Code
1 public partial class SharpCatchedService : ServiceBase
2 {
3 public SharpCatchedService()
4 {
5 InitializeComponent();
6 }
7
8 protected override void OnStart(string[] args)
9 {
10 TcpChannel channel = new TcpChannel(ConfigHelper.Port);
11 ChannelServices.RegisterChannel(channel, false);
12 RemotingConfiguration.RegisterWellKnownServiceType(typeof(DataCatcher),
13 "SharpCatched", WellKnownObjectMode.Singleton);
14 }
15
16 protected override void OnStop()
17 {
18 }
19 }
這樣客戶端就可以通過這個接口來實現(xiàn)遠程數(shù)據(jù)的存取
在客戶端首先我們獲取遠程的對象
Code
public static ICarrier Carrier()
{
ICarrier carrier = (ICarrier)Activator.GetObject(typeof(ICarrier), "tcp://localhost:" + ConfigHelper.Port + "/SharpCatched");
return carrier;
}
接著我們包裝一下
Code
1 public class SharpCatchedAPI
2 {
3 ICarrier icarrier;
4
5 public void Init()
6 {
7 icarrier = DoConnect.Carrier();
8 }
9
10 public void Set(string key, object value)
11 {
12 icarrier.Set(key, value);
13 }
14
15 public void Remove(string key)
16 {
17 icarrier.Remove(key);
18 }
19
20 public object Get(string key)
21 {
22 return icarrier.Get(key);
23 }
24
25 public bool Exits(string key)
26 {
27 return icarrier.Exits(key);
28 }
29 }
3后續(xù)
以上實現(xiàn)的是最基本的分布式緩存解決方案。其實我們可以把這個集合轉化為其他集合對象,例如HashTable。在對象啟動的時候開啟一個守護線程,這個進程做得工作就是把到期的緩存對象追加到一個集合對象中,然后遍歷該對象實現(xiàn)緩存對象的銷毀。我們還可以把對象進行一次哈希讓對像在多臺緩存服務器上存儲。好了今天就寫到這里吧。
以上文字希望能起到拋磚引玉的作用,引起大家更深層次的思考。
相關文章
apache,nginx上傳目錄無執(zhí)行權限的設置方法
至于為什么設置上傳目錄無權限這個我就不累贅了,現(xiàn)在比較流行的web服務有iis,apache,nginx,使用操作系統(tǒng)無非是windows or *nux2010-12-12CentOS 6.5平臺實現(xiàn)快速部署FTP的方法
這篇文章主要介紹了CentOS 6.5平臺實現(xiàn)快速部署FTP的方法,結合實例形式分析了CentOS6.5平臺配置與部署FTP的具體步驟、相關操作命令與注意事項,需要的朋友可以參考下2018-04-04在CentOS VPS上通過SSH安裝 MySQL的方法圖解
這篇文章主要介紹了在CentOS VPS上通過SSH安裝 MySQL,需要的朋友可以參考下2018-12-12win7中VMware安裝CentOs7搭建Linux環(huán)境教程
這篇文章主要為大家詳細介紹了win7中VMware虛擬機安裝CentOs7搭建Linux環(huán)境教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11Canonical通過Flutter啟用Linux桌面應用程序(推薦)
這篇文章主要介紹了Canonical通過Flutter啟用Linux桌面應用程序,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07詳解如何在Ubuntu 16.04上增加Swap分區(qū)
本篇文章主要介紹了詳解如何在Ubuntu 16.04上增加Swap分區(qū),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05Linux tomcat下catalina.out日志文件分割
這篇文章主要介紹了Linux tomcat下catalina.out日志文件分割的相關資料,需要的朋友可以參考下2017-02-02使用FileZilla從Linux系統(tǒng)下載文件的方法
最近做項目,遇到這樣的需求,要求將Linux系統(tǒng)的的某個文件夾下載到我Windows系統(tǒng)某個文件夾里,怎么實現(xiàn)這個功能呢?下面腳本之家小編給大家?guī)砹耸褂肍ileZilla從Linux系統(tǒng)下載文件的方法,感興趣的朋友一起看看吧2018-07-07