C#分布式缓存Couchbase

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#分布式缓存Couchbase使用

摘要: 一、简介 目前C#业界使用得最多的 Cache 系统主要是 Memcached和 Redis。 这两个 Cache 系统可以说是比较成熟的解决方案,也是很多系统当然的选择。 Memcache的开发团队开发了Membase,支持多台服务器集群,数据的切片和复制,有效的提高了服务稳定性和数据的...阅读全文

posted @ 2015-09-20 19:30 weixiao520 阅读(2319) | 评论 (31) 编辑

ASP.NET MVC5 与EF6学习系列

摘要: 最近学习使用MVC5和EF6,博客园搜索了一番,写下这篇文章记录,以便学习使用。一、ASP.NET MVC5 网站开发 @洞庭夕照写的博客系列ASP.NET MVC5 网站开发实践 - 概述ASP.NET MVC5 网站开发实践(一) - 项目框架ASP.NET MVC5 网站开发实践(一) - ...阅读全文

posted @ 2015-09-14 16:28 weixiao520 阅读(1311) | 评论 (8) 编辑

C#反射机制

摘要: 最近项目上使用到到反射,找到以前保留的一份文档,作者是李志伟,找不到原出处,在此表示感谢。 在这分享一下。1.反射机制基础类(1)反射机制的功能与介绍审查元数据并收集关于它的类型信息的能力称为反射。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,...阅读全文

posted @ 2015-05-22 17:22 weixiao520 阅读(262) | 评论 (0) 编辑

对C#中的Close()和Dispose()的浅析

摘要: .net中的许多类都提供了Close()和Dispose()方法,一直以来我都以为它俩是一回事,是完全等价的,在任何地方,用其一即可。有些类说Close比说Dispose更符合用户的理解(如关闭连接、关闭流),所以这让我觉得Close就是作为Dispose的另一种使用方式而存在,本来只需一个Disp...阅读全文

posted @ 2014-01-26 14:53 weixiao520 阅读(351) | 评论 (1) 编辑

C#中调用Windows API时的数据类型对应关系

摘要: 最近做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) 编辑

实现DataGridView控件中CheckBox列的使用

摘要: 最近做WindowsForms程序,使用DataGridView控件时,加了一列做选择用,发现CheckBox不能选中。搜索后,要实现DataGridView的CellContentClick事件,将代码贴一下:1 ///2///实现DataGridView控件中CheckBox列的使用3//...阅读全文

posted @ 2014-01-20 11:56 weixiao520 阅读(337) | 评论 (0) 编辑

C# 简单学习正则表达式

摘要: 第一步先要引入有关正则式的命名空间:usingSystem.Text.RegularExpressions; 第二步用指定的正则式构建一个正则表达式对象,下面的正则式是用来搜索长度为10的a-z的英文字母:Regex obj =newRegex("[a-z]{10}");最后,根据正...阅读全文

posted @ 2013-11-26 23:12 weixiao520 阅读(334) | 评论 (0) 编辑

DotNetZip封装类

摘要: DotnetZip是一个开源类库,支持.NET的任何语言,可很方便的创建,读取,和更新zip文件。而且还可以使用在.NETCompact Framework中。下载地址在这里:http://dotnetzip.codeplex.com/下载到的包里有很多个dll文件,一般引用Ionic.Zip.dl...阅读全文

posted @ 2013-10-12 16:48 weixiao520 阅读(1015) | 评论 (2) 编辑

Newtonsoft.Json日期转换

摘要: 在使用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#

时间: 2024-10-22 11:59:14

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

C#分布式缓存Couchbase使用

一.简介 目前C#业界使用得最多的 Cache 系统主要是 Memcached和 Redis. 这两个 Cache 系统可以说是比较成熟的解决方案,也是很多系统当然的选择. Memcache基本上已经是开发的标配,但是对于Memcache集群,很多线上部署仍然是很单薄的.几个存在的问题:不健壮.数据不安全.配置变更可能导致存取异常.后备数据的一致性.Memcached 不支持持久化. 鉴于存在以上问题,Memcache的开发团队开发了Membase,支持多台服务器集群,数据的切片和复制,有效的提

第八章 企业项目开发--分布式缓存memcached

注意:本节代码基于<第七章 企业项目开发--本地缓存guava cache> 1.本地缓存的问题 本地缓存速度一开始高于分布式缓存,但是随着其缓存数量的增加,所占内存越来越大,系统运行内存越来越小,最后系统会被拖慢(这一点与第二点联系起来) 本地缓存存于本机,其缓存数量与大小受本机内存大小限制 本地缓存存于本机,其他机器的访问不到这样的缓存 解决方案:分布式缓存 Jboss cache:缓存还存于本机,但是会同步更新到其他机器(解决了第三个问题,解决不了第一和第二个问题),如果缓存机器数量很多

分布式缓存- memcached

分布式缓存出于如下考虑,首先是缓存本身的水平线性扩展问题,其次是缓存大并发下的本身的性能问题,再次避免缓存的单点故障问题(多副本和副本一致性).分布式缓存的核心技术包括首先是内存本身的管理问题,包括了内存的分配,管理和回收机制.其次是分布式管理和分布式算法,其次是缓存键值管理和路由. 原文:http://wenku.baidu.com/view/8686d46c7e21af45b307a8c3.html 什么是Memcached 许多Web 应用程序都将数据保存到RDBMS中,应用服务器从中读取

分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装

redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssdb,mongodb等.既可以把redis理解为理解为缓存技术,因为它的数据都是缓存在内从中的:也可以理解为数据库,因为redis可以周期性的将数据写入磁盘或者把操作追加到记录文件中.而我个人更倾向理解为缓存技术,因为当今互联网应用业务复杂.高并发.大数据的特性,正是各种缓存技术引入最终目的. 关于r

Spring-ehcache RMI形式的分布式缓存配置

ehcache所需jar:ehchache-core 和spring注解所需 spring-context <dependency>    <groupId>net.sf.ehcache</groupId>    <artifactId>ehcache-core</artifactId>    <version>2.6.6</version> </dependency> <dependency>  

C# Azure 分布式缓存Redis的新建与配置

1. 介绍 Redis 是一款开源的,基于 BSD 许可的,高级键值 (key-value) 缓存 (cache) 和存储 (store) 系统.由于 Redis 的键包括 string,hash,list,set,sorted set,bitmap 和 hyperloglog,所以常常被称为数据结构服务器.你可以在这些类型上面运行原子操作,例如,追加字符串,增加哈希中的值,加入一个元素到列表,计算集合的交集.并集和差集,或者是从有序集合中获取最高排名的元素. 为了满足高性能,Redis 采用内

5个强大的Java分布式缓存框架推荐

在开发中大型Java软件项目时,很多Java架构师都会遇到数据库读写瓶颈,如果你在系统架构时并没有将缓存策略考虑进去,或者并没有选择更优的缓存策略,那么到时候重构起来将会是一个噩梦.本文主要是分享了5个常用的Java分布式缓存框架,这些缓存框架支持多台服务器的缓存读写功能,可以让你的缓存系统更容易扩展. 1.Ehcache – Java分布式缓存框架 Ehcache是一个Java实现的开源分布式缓存框架,EhCache 可以有效地减轻数据库的负载,可以让数据保存在不同服务器的内存中,在需要数据的

分布式缓存学习总结

一.分布式缓存简图 二.为什么使用Memcached分布式缓存呢? 三.Memcached基础原理 四.Memcache下载与安装 五.MencacheHelper.cs 示例使用 结合Session与项目配置缓存 六.Redis和Memcache的区别总结 一.分布式缓存简图 二.为什么使用Memcached分布式缓存呢? 首先先讲讲为何要缓存,在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的虽然已

分布式缓存(MemCached)

最近在为找工作做准备,就看了好多.NET基础知识,发现很多关于页面之间传值的方式,其中就有Session,但也发现Session在实际使用过程中有很多问题.最典型也最重要大的BUG就是如果IIS中同时有很多进程发生时,内存不够用那么有垃圾回收机制,就会导致Session的丢失.解决方法有:可以用Sate Server或SQL Server数据库的方式存储Session,可是这两种方式都有个缺点就是处理速度慢,无法捕获END事件.因此,我便想那么还有什么方式可以解决这一问题呢? 结果就是使用分布式