Couchbase之個人描述及入門示例


本文不打算抄襲官方或者引用他人對Couchbase的各種描述,僅僅是自己對它的一點理解(錯誤之處,敬請指出),並附上一個入門示例。

ASP.NET Web項目(其他web開發平台也一樣)應用規模小的時候,可以利用.net framework自帶的緩存機制進行緩存,可是,當項目應用規模大了后,再這樣萬年不變的應用下去,恐怕難以取得良好效果。而C#本身是應用級開發語言,其擅長的是業務邏輯開發,而緩存這種與具體業務緊密程度不大的系統,用C#開發,顯然不具有跨平台性,沒有普適性,而且C#對緩存也基本停留在微軟給啥,咱就有啥的階段,並且效率也相對不高。因此,利用C、C++等系統級開發語言進行開發成為合適的選擇。

具體到Couchbase,自己認為應該是Memcached、Membase、CouchDB的融合升級版,可以說是集合眾家之長,目前應該是最先進的Cache系統。這一系統的出現,將極大促進各個web開發平台及自身的發展,真讓人激動。

好了,下面是自己剛剛搗鼓成功的一個示例。

首先下載Couchbase server版本,自己下載的是2.5.1企業版。

安裝成功后,按官方說法,會默認打開本地8091端口進行web管理。

這是內存使用及緩存被調動情況。

這是緩存桶使用情況。

以下為參照資料寫的一個簡易調用示例,先看效果圖:

在用戶姓名文本框中,輸入緩存的用戶名,點擊“Cache User”按鈕后,出現的畫面。

這是緩存成功后,點擊“GetCachedUser”按鈕時出現的畫面。

以下是代碼部分:

調用代碼需要使用Couchbase的客戶端,下載后,在項目中引用:Cachebase.dll 和 Enyim.Caching.dll,之后在web.config中配置以下節點

  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="couchbase" type="Couchbase.Configuration.CouchbaseClientSection, Couchbase"/>
  </configSections>
  <couchbase>
    <servers bucket="default" bucketPassword="">
      <add uri="http://127.0.0.1:8091/pools"/>
    </servers>
  </couchbase>

前台代碼(html)部分:

<div id="body" style="text-indent: 10px">
    姓名:<input type="text" id="cacheuser" />
    <input type="button" value="Cache User" onclick="cacheUser();" />
    <input type="button" value="GetCachedUser" onclick="getCachedUser();" />
</div>
<script type="text/javascript">
    function cacheUser() {
        $.getServerJson('api/HomeAPI/GetCacheUser',
            { userName: $("#cacheuser").val() },
            function (result) {
                alert(result);
            });
    }
    function getCachedUser() {
        $.getServerJson('api/HomeAPI/GetCachedUser',
            { userName: $("#cacheuser").val() },
            function (result) {
                alert(result);
            });
    }
</script>

 C#代碼部分如下:

 public string GetCacheUser(string userName)
        {
            var client = CouchbaseManager.Instance;

            client.Remove(userName);

            bool result = client.Store(StoreMode.Add, userName, "我是:" + userName + ",找我有事嗎?", LoginTimeSpan);

            return result == true ? "緩存成功。" : "緩存失敗!";
        }
        public string GetCachedUser(string userName)
        {
            var client = CouchbaseManager.Instance;

            object ob = client.Get(userName);

            return ob == null ? "抱歉,沒有找到此人!" : ob.ToString();
        }

Couchbase調用非常的簡單明了,沒有過多的配置,擴展也極其方便。整體感覺Couchbase是一個非常棒的Cache系統,期待在以后的開發中大規模應用它!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM