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,最终完成配置进入主页。在里面可以看到很多东西,有待慢慢研究。

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

二、客户端调用

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

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

 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的安装配置与使用说明

 
摘要: 一、简介 目前C#业界使用得最多的 Cache 系统主要是 Memcached和 Redis。 这两个 Cache 系统可以说是比较成熟的解决方案,也是很多系统当然的选择。 Memcache的开发团队开发了Membase,支持多台服务器集群,数据的切片和复制,有效的提高了服务稳定性和数据的...阅读全文
posted @ 2015-09-20 19:30 weixiao520 阅读(2319) | 评论 (31) 编辑
 
摘要: 最近学习使用MVC5和EF6,博客园搜索了一番,写下这篇文章记录,以便学习使用。一、ASP.NET MVC5 网站开发 @洞庭夕照写的博客系列ASP.NET MVC5 网站开发实践 - 概述ASP.NET MVC5 网站开发实践(一) - 项目框架ASP.NET MVC5 网站开发实践(一) - ...阅读全文
posted @ 2015-09-14 16:28 weixiao520 阅读(1311) | 评论 (8) 编辑
 
摘要: 最近项目上使用到到反射,找到以前保留的一份文档,作者是李志伟,找不到原出处,在此表示感谢。 在这分享一下。1.反射机制基础类(1)反射机制的功能与介绍审查元数据并收集关于它的类型信息的能力称为反射。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,...阅读全文
posted @ 2015-05-22 17:22 weixiao520 阅读(262) | 评论 (0) 编辑
 
摘要: .net中的许多类都提供了Close()和Dispose()方法,一直以来我都以为它俩是一回事,是完全等价的,在任何地方,用其一即可。有些类说Close比说Dispose更符合用户的理解(如关闭连接、关闭流),所以这让我觉得Close就是作为Dispose的另一种使用方式而存在,本来只需一个Disp...阅读全文
posted @ 2014-01-26 14:53 weixiao520 阅读(351) | 评论 (1) 编辑
 
摘要: 最近做WinForm项目时,要调用Windows API。查阅了一些资料,数据类型对应关系整理如下BOOL=System.Int32 BOOLEAN=System.Int32 BYTE=System.UInt16 CHAR=System.Int16 COLORREF=System.UInt32 DWORD=System.UInt32 DWORD32=System.UInt32 DWORD64=System.UInt64 FLOAT=System.Float HACCEL=System.IntPtr HANDLE=System.IntPtr HBITMAP=System.IntPtr HBRUS阅读全文
posted @ 2014-01-26 14:34 weixiao520 阅读(589) | 评论 (0) 编辑
 
摘要: 最近做WindowsForms程序,使用DataGridView控件时,加了一列做选择用,发现CheckBox不能选中。搜索后,要实现DataGridView的CellContentClick事件,将代码贴一下:1 ///2///实现DataGridView控件中CheckBox列的使用3//...阅读全文
posted @ 2014-01-20 11:56 weixiao520 阅读(337) | 评论 (0) 编辑
 
摘要: 第一步先要引入有关正则式的命名空间:usingSystem.Text.RegularExpressions; 第二步用指定的正则式构建一个正则表达式对象,下面的正则式是用来搜索长度为10的a-z的英文字母:Regex obj =newRegex("[a-z]{10}");最后,根据正...阅读全文
posted @ 2013-11-26 23:12 weixiao520 阅读(334) | 评论 (0) 编辑
 
摘要: DotnetZip是一个开源类库,支持.NET的任何语言,可很方便的创建,读取,和更新zip文件。而且还可以使用在.NETCompact Framework中。下载地址在这里:http://dotnetzip.codeplex.com/下载到的包里有很多个dll文件,一般引用Ionic.Zip.dl...阅读全文
posted @ 2013-10-12 16:48 weixiao520 阅读(1015) | 评论 (2) 编辑
 
摘要: 在使用EasyUI做后台时,使用表格datagrid,用Newtonsoft.Json转换为Json格式后,时间显示为2013-06-15T00:00:00形式。 后来研究了一下Newtonsoft.Json,在使用Newtonsoft.Json转换时,如转换时带有日期的对象。代码如下:Newtonsoft.Json.Converters.IsoDateTimeConvertertimeConverter=newNewtonsoft.Json.Converters.IsoDateTimeConverter();timeConverter.DateTimeFormat="yyyy阅读全文
posted @ 2013-06-19 13:22 weixiao520 阅读(351) | 评论 (0) 编辑
分类: C#

C#分布式缓存Couchbase的更多相关文章

  1. C#分布式缓存Couchbase使用

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

  2. j2ee分布式缓存同步实现方案dlcache v1.0.0

    现成的分布式K/V缓存已经有很多的实现,最主要的比如redis,memcached,couchbase.那为什么我们还要自己去实现呢,在我们解决了分布式系统下大量rpc调用导致的高延时后,我们发现很多 ...

  3. j2ee分布式缓存同步实现方案dlcache

    现成的分布式K/V缓存已经有很多的实现,最主要的比如redis,memcached,couchbase.那为什么我们还要自己去实现呢,在我们解决了分布式系统下大量rpc调用导致的高延时后,我们发现很多 ...

  4. 【开源项目系列】如何基于 Spring Cache 实现多级缓存(同时整合本地缓存 Ehcache 和分布式缓存 Redis)

    一.缓存 当系统的并发量上来了,如果我们频繁地去访问数据库,那么会使数据库的压力不断增大,在高峰时甚至可以出现数据库崩溃的现象.所以一般我们会使用缓存来解决这个数据库并发访问问题,用户访问进来,会先从 ...

  5. .net 分布式架构之分布式缓存中间件

    开源git地址: http://git.oschina.net/chejiangyi/XXF.BaseService.DistributedCache 分布式缓存中间件  方便实现缓存的分布式,集群, ...

  6. CRL快速开发框架系列教程六(分布式缓存解决方案)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  7. 一个技术汪的开源梦 —— 公共组件缓存之分布式缓存 Redis 实现篇

    Redis 安装 & 配置 本测试环境将在 CentOS 7 x64 上安装最新版本的 Redis. 1. 运行以下命令安装 Redis $ wget http://download.redi ...

  8. ASP.Net MVC4+Memcached+CodeFirst实现分布式缓存

    ASP.Net MVC4+Memcached+CodeFirst实现分布式缓存 part 1:给我点时间,允许我感慨一下2016年 正好有时间,总结一下最近使用的一些技术,也算是为2016年画上一个完 ...

  9. CYQ.Data V5 分布式缓存Redis应用开发及实现算法原理介绍

    前言: 自从CYQ.Data框架出了数据库读写分离.分布式缓存MemCache.自动缓存等大功能之后,就进入了频繁的细节打磨优化阶段. 从以下的更新列表就可以看出来了,3个月更新了100条次功能: 3 ...

随机推荐

  1. MVC 学习 区域

    http://www.cnblogs.com/fly_dragon/archive/2011/10/12/2209438.html

  2. oracle12c(oracle12.1.0.1.0)安装指南--实测OEL5.9(RH5)

    [root@oel ora12c]# uname -a Linux oel 2.6.39-300.26.1.el5uek #1 SMP Thu Jan 3 18:31:38 PST 2013 x86_ ...

  3. Spring常见问题解决办法汇总

    解决The prefix 'context' for element 'context:component-scan' is not bound<beans xmlns="http:/ ...

  4. 【原创】leetCodeOj --- Word Ladder II 解题报告 (迄今为止最痛苦的一道题)

    原题地址: https://oj.leetcode.com/submissions/detail/19446353/ 题目内容: Given two words (start and end), an ...

  5. Java面试题集(136-150)

    摘要:目,尽管仅仅有15道题目.可是包括的信息量还是非常大的,非常多题目背后的解题思路和算法是非常值得玩味的. 136.给出以下的二叉树先序.中序.后序遍历的序列? 答:先序序列:ABDEGHCF.中 ...

  6. 破解win2008r2服务器域用户名

    启动PE系统 进入 cmd窗口 cd 进入 win2008r2服务器的安装盘(假设为d:) d: cd windows/system32 ren osk.exe osk02.exe  #重命令屏幕键盘 ...

  7. js“分享到”侧边框伸缩实现

    思路: 1,临界值是 -150 和 0 如果大于临界值,就要隐藏 2,隐藏:速度为负 显示:速度为正 3,如果与临界值相等,就清空定时器 否则,就运动 ------------------------ ...

  8. 乐在其中设计模式(C#) - 建造者模式(Builder Pattern)

    原文:乐在其中设计模式(C#) - 建造者模式(Builder Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 建造者模式(Builder Pattern) 作者:webabc ...

  9. 如何更改Java括号中的默认对齐

    (1)在使用程序猿非常Java当大括号的排列有感就是它的不那么整齐! 很多人不知道为什么会这样: public class HelloWorld{ pulic static void main(Str ...

  10. Java中使用Lua脚本语言(转)

    Lua是一个实用的脚本语言,相对于Python来说,比较小巧,但它功能并不逊色,特别是在游戏开发中非常实用(WoW采用的就是Lua作为脚本的).Lua在C\C++的实现我就不多说了,网上随便一搜,到处 ...