C#分布式緩存Couchbase使用
一、簡介
目前C#業(yè)界使用得最多的 Cache 系統(tǒng)主要是 Memcached和 Redis。 這兩個(gè) Cache 系統(tǒng)可以說是比較成熟的解決方案,也是很多系統(tǒng)當(dāng)然的選擇。
Memcache的開發(fā)團(tuán)隊(duì)開發(fā)了Membase,支持多臺(tái)服務(wù)器集群,數(shù)據(jù)的切片和復(fù)制,有效的提高了服務(wù)穩(wěn)定性和數(shù)據(jù)的安全性,并且支持?jǐn)?shù) 據(jù)的持久存儲(chǔ)。但代碼的穩(wěn)定性不夠好。之后,Membase團(tuán)隊(duì)與CouchDB團(tuán)隊(duì)合并,推出二合一的產(chǎn)品: Couchbase。
Couchbase的***特點(diǎn):
1,完全繼承Memcache,原生支持所有Memcache操作;
2,繼承了Membase的特性,支持集群和數(shù)據(jù)持久化;
3,繼承了CouchDB的文檔性質(zhì),支持通過View對(duì)數(shù)據(jù)進(jìn)行操作。這個(gè)View的特性,提供了以往memcache所不具備的便利性,但是同Mongodb相比又很簡單原始,感覺不是一種普遍需求的功能。
今天,也學(xué)習(xí)下Couchbase的簡單使用。
二、Couchbase服務(wù)端安裝
服務(wù)端下載地址:http://www.couchbase.com/download 選擇適合自己系統(tǒng)版本的進(jìn)行下載安裝。目前***4.0.0。
Couchbase采用web方式進(jìn)行管理、安裝完后,如果成功了,那么在瀏覽器中可以看到。如果沒有那么需要手動(dòng)進(jìn)行訪問http://localhost:8091/index.html。本機(jī)安裝的可以用localhost,可以用IP或者h(yuǎn)ostname。
在打開的頁面上點(diǎn)擊SETUP,默認(rèn)設(shè)置,然后點(diǎn)擊Next,然后到了下面
輸入管理員密碼。繼續(xù)Next,最終完成配置進(jìn)入主頁。在里面可以看到很多東西,有待慢慢研究。
安裝完之后也可以在服務(wù)中查看到:
二、客戶端調(diào)用
創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序作測試,然后通過Nuget進(jìn)行Couchbase的客戶端的DLL安裝。我的項(xiàng)目基于.NETFramework4.0,所以選擇CouchbaseNetClient 1.3.12。
引用完畢,默認(rèn)連接地址為:http://127.0.0.1:8091/pools/default,碼代碼進(jìn)行簡單的調(diào)用:
1 static void Main(string[] args)
2 {
3 //配置服務(wù)器
4 CouchbaseClientConfiguration cbcc = new CouchbaseClientConfiguration();
5 //設(shè)置各種超時(shí)時(shí)間
6 cbcc.SocketPool.ReceiveTimeout = new TimeSpan(0, 0, 2);
7 cbcc.SocketPool.ConnectionTimeout = new TimeSpan(0, 0, 4);
8 cbcc.SocketPool.DeadTimeout = new TimeSpan(0, 0, 10);
9 //使用默認(rèn)的數(shù)據(jù)庫
10 cbcc.Urls.Add(new Uri("http://127.0.0.1:8091/pools/default")); 11 12 //建立一個(gè)Client,裝入Client的配置 13 CouchbaseClient client = new CouchbaseClient(cbcc); 14 //添加一條數(shù)據(jù) 15 CasResult<bool> casResult = client.Cas(StoreMode.Add, "Test", "Hello World!"); 16 //獲取剛添加的數(shù)據(jù) 17 Console.WriteLine(client.Get("Test")); 18 Console.WriteLine("完成!"); 19 Console.ReadLine(); 20 }
StoreMode.Add ,StoreMode.Replace 和 StoreMode.Set 的區(qū)別
Add:表示添加一個(gè)新的key;
Replace:表示更新一個(gè)已經(jīng)存在的key ;
Set:表示如果key不存在則添加、存在則更新。
CouchbaseClient 下有添加(Cas)、移除(Remove)和其他方法,待后續(xù)研究。
***運(yùn)行運(yùn)行獲取設(shè)置的緩存值結(jié)果為 :
下面將這句設(shè)置值的注釋掉: CasResult<bool> casResult = client.Cas(StoreMode.Add, "Test", "Hello World!");
再次運(yùn)行值還是獲取到了:
其他測試結(jié)果:
WEB后臺(tái)也能看到添加的數(shù)據(jù),并且已經(jīng)加密處理:
三、總結(jié)
簡單使用下來感覺很不錯(cuò),有空繼續(xù)研究。這里有一個(gè)CouchBase的安裝配置與使用說明。