首页 > 代码库 > Couchbase之个人描述及入门示例

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系统,期待在以后的开发中大规模应用它!