zoukankan      html  css  js  c++  java
  • C#分布式缓存一:Couchbase的安装与简单使用

    一、简介   

      目前C#业界使用得最多的 Cache 系统主要是 Memcached和 Redis。 这两个 Cache 系统可以说是比较成熟的解决方案,也是很多系统当然的选择。 

      Memcache的开发团队开发了Membase,支持多台服务器集群,数据的切片和复制,有效的提高了服务稳定性和数据的安全性,并且支持数据的持久存储。但代码的稳定性不够好。之后,Membase团队与CouchDB团队合并,推出二合一的产品: Couchbase。

      Couchbase的最大特点:

      1,完全继承Memcache,原生支持所有Memcache操作;

      2,继承了Membase的特性,支持集群和数据持久化;

      3,继承了CouchDB的文档性质,支持通过View对数据进行操作。这个View的特性,提供了以往memcache所不具备的便利性,但是同Mongodb相比又很简单原始,感觉不是一种普遍需求的功能。

      今天,也学习下Couchbase的简单使用。

    二、Couchbase服务端安装

      服务端下载地址:http://www.couchbase.com/download 选择适合自己系统版本的进行下载安装。目前最新4.0.0。

      Couchbase采用web方式进行管理、安装完后,如果成功了,那么在浏览器中可以看到。如果没有那么需要手动进行访问http://localhost:8091/index.html。本机安装的可以用localhost,可以用IP或者hostname。

      在打开的页面上点击SETUP,默认设置,然后点击Next,然后到了下面

    输入管理员密码。继续Next,最终完成配置进入主页。在里面可以看到很多东西,有待慢慢研究。

         

         安装完之后也可以在服务中查看到:

      Couchbase中几个名词简单解释:    

        Node:节点,即一台安装了Couchbase的服务器,所有节点拥有相同的组件和服务,并提供相同的接口。

        Cluster:集群,多个节点组成一个集群。

        Bucket:Bucket类似于数据库的概念,可为不同逻辑的项目创建不同的Bucket。

        Item:一个项即一个Key/Value键值对。

    二、客户端调用

      创建一个控制台应用程序作测试,然后通过Nuget进行Couchbase客户端的DLL安装。我的项目基于.NETFramework4.0,所以选择CouchbaseNetClient 1.3.12。

    引用完毕,默认连接地址为:http://127.0.0.1:8091/pools/default,码代码进行简单的调用:

      添加DLL引用。

        using Couchbase;
        using Couchbase.Extensions;
        using Enyim.Caching.Memcached;

     1 static void Main(string[] args)
     2         {
     3             //配置服务器   
     4             CouchbaseClientConfiguration cbcc = new CouchbaseClientConfiguration();
     5             //设置各种超时时间   
     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             //使用默认的数据库   
    10             cbcc.Urls.Add(new Uri("http://127.0.0.1:8091/pools/default"));
    11 
    12             //建立一个Client,装入Client的配置   
    13             CouchbaseClient client = new CouchbaseClient(cbcc);
    14             //添加一条数据 
    15             CasResult<bool> casResult = client.Cas(StoreMode.Add, "Test", "Hello World!");    
    16             //获取刚添加的数据   
    17             Console.WriteLine(client.Get("Test"));
    18             Console.WriteLine("完成!");
    19             Console.ReadLine();
    20         }

      StoreMode.Add ,StoreMode.Replace 和 StoreMode.Set 的区别 

      Add:表示添加一个新的key;

      Replace:表示更新一个已经存在的key ;

      Set:表示如果key不存在则添加、存在则更新。

      CouchbaseClient 下有添加(Cas)、移除(Remove)和其他方法,待后续研究。

      首次运行运行获取设置的缓存值结果为 :

    下面将这句设置值的注释掉:  CasResult<bool> casResult = client.Cas(StoreMode.Add, "Test", "Hello World!");    

    再次运行值还是获取到了:

    其他测试结果:

    WEB后台也能看到添加的数据,并且已经加密处理:

    三、总结

    简单使用下来感觉很不错,有空继续研究。这里有一个CouchBase的安装配置与使用说明

  • 相关阅读:
    链表--反转链表(leetcode 206
    链表--重排链表(leetcode 143
    链表--删除链表中的结点(leetcode 237
    链表--K个一组反转链表(leetcode 25
    链表--相交链表(leetcode 160
    链表--两数相加II(leetcode 445
    链表--复制含有随机指针节点的链表(leetcode138
    链表--回文链表(leetcode234
    链表--环形链表(leetcode 141,142
    链表--分隔链表(leetcode86
  • 原文地址:https://www.cnblogs.com/weixiao520/p/4824085.html
Copyright © 2011-2022 走看看