C#分布式缓存Couchbase安装及使用教程

C#分布式缓存Couchbase使用

一、Couchbase简介

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

鉴于存在以上问题,Memcache的开发团队开发了Membase,支持多台服务器集群,数据的切片和复制,有效的提高了服务稳定性和数据的安全
性,并且支持数据的持久存储。代码的稳定性不够好,我曾经在部分线上业务上使用了Membase,后来因为几次莫名的存取操作缓慢,只能又撤销回到
Memcache。

之后,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,码代码进行简单的调用:

static void Main(string[] args)
        {
            //配置服务器   
            CouchbaseClientConfiguration cbcc = new CouchbaseClientConfiguration();
            //设置各种超时时间   
            cbcc.SocketPool.ReceiveTimeout = new TimeSpan(0, 0, 2);
            cbcc.SocketPool.ConnectionTimeout = new TimeSpan(0, 0, 4);
            cbcc.SocketPool.DeadTimeout = new TimeSpan(0, 0, 10);
            //使用默认的数据库   
            cbcc.Urls.Add(new Uri("http://127.0.0.1:8091/pools/default"));
            //建立一个Client,装入Client的配置   
            CouchbaseClient client = new CouchbaseClient(cbcc);
            //添加一条数据 
            CasResult<bool> casResult = client.Cas(StoreMode.Add, "Test", "Hello World!");    
            //获取刚添加的数据   
            Console.WriteLine(client.Get("Test"));
            Console.WriteLine("完成!");
            Console.ReadLine();
        }

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

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

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

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

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

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


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


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


其他测试结果:


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

Memcache升级版:CouchBase的安装配置与使用说明

Memcache基本上已经是开发的标配了,但是对于Memcache集群,很多线上部署仍然是很单薄的。

几个存在的问题:不健壮、数据不安全、配置变更可能导致存取异常、后备数据的一致性

鉴于存在以上问题,Memcache的开发团队开发了Membase,支持多台服务器集群,数据的切片和复制,有效的提高了服务稳定性和数据的安全
性,并且支持数据的持久存储。代码的稳定性不够好,我曾经在部分线上业务上使用了Membase,后来因为几次莫名的存取操作缓慢,只能又撤销回到
Memcache。

之后,Membase团队与CouchDB团队合并,推出二合一的产品: Couchbase。

Couchbase的最大特点:

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

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

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

首先,从安装讲起:

安装服务器:


去官网下载对应版本的安装包http://www.couchbase.com 目前最新版本是2.1.1

从membase开始,就提倡采用web方式进行管理(执行完安装文件后,在浏览器中http://localhost:8091端口访问),默认是8091端口。

另外一段信息,是关于端口。11211是memcache访问端口,8091是管理和操作端口,其他几个是用于管理和集群通讯的。

打开8091进行初始化设置:


初始化过程很人性化,第一步是选择物理存储位置,并且设定新创建还是加入到一个已有的集群中。

如果选择新创建,需要指定内存使用的数量(注意若在集群中,所有集群的Mem内存必须都大于此值)。下一步中,还可以选择自动灌入一些测试数据,这样能直接体验一些view的效果。

再下一步,是创建缺省Bucket设置,这个很重要:


Bucket 的意义,在于将数据进行分隔,比如:任何view就是基于一个bucket的,仅对bucket内的数据进行处理。一个server上
可以有多个Bucket,每个Bucket的存储类型、内容占用、数据复制数量等,都需要分别指定。从这个意义上看,每个Bucket都相当于一个独立的
实例。在集群状态下,我们需要对server进行集群设置,Bucket只侧重数据的保管。

创建Bucket,需要指明驱动类型: Memcached顾名思义,纯内存,无复制集等功能;Couchbase型是带有持久存储,可以有复制集。

关于复制集,可以设置:禁止复制集、复制集数量(如果设为2,数据将在两个节点上保存,任何一个节点损坏数据仍然存在),是否对索引也进行复制。Flush,是指是否支持清空全部数据的操作。

建议是使用Couchbase类型,设定好内存使用量,其他按默认。关于内存设定,尽量不要将Server上的内存全部分配出去,留一些空闲,对新建Bucket进行测试就很方便。当然,Bucket占用的内存数,在建立后也是可以动态调整的。

后面按照提示进行,设置完管理员密码,服务就可以使用了。在首页的管理界面,可以看到运行的概况:


在ServerNodes帧中,可以查看服务器集群情况;在View中,可以管理各个Bucket中的View,在DataBuckets中,对Buckets进行管理。比如调整内存占用:


只有一个服务器节点,replica是没有意义的,我们来搭建第二个服务器节点。安装过程类似,这里选择加入集群,填写IP和密码:


点击下一步,经过验证就可以加入集群了。集群中任何一台服务器,地位是对等的,用浏览器连接上去都可以进行管理。

可以看到,新加入的服务器处于 Pending
状态,意味着数据尚未进行同步。只有数据进行同步之后,这个节点才能提供服务。点击Rebalance按钮,进行数据同步。还有进度条显示,真的很体贴。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索内存
, 服务器
, 数据
, 集群
, couchbase
端口
c站、c语言、cf、ch、c罗,以便于您获取更多的相关知识。

时间: 2024-10-24 23:03:22

C#分布式缓存Couchbase安装及使用教程的相关文章

C#分布式缓存Couchbase使用

一.简介 目前C#业界使用得最多的 Cache 系统主要是 Memcached和 Redis. 这两个 Cache 系统可以说是比较成熟的解决方案,也是很多系统当然的选择. Memcache的开发团队开发了Membase,支持多台服务器集群,数据的切片和复制,有效的提高了服务稳定性和数据的安全性,并且支持数 据的持久存储.但代码的稳定性不够好.之后,Membase团队与CouchDB团队合并,推出二合一的产品: Couchbase. Couchbase的最大特点: 1,完全继承Memcache,

php5.4之分布式缓存memcache(windows7下安装配置)

一.安装memcache memcached在windows7上的安装问题 现在安装包:http://www.jb51.net/softs/44843.html memcache的安装包 错误: 通过cmd命令行进入到D:\webEve\memcached(下载后的解压目录) 运行 memcached.exe -d install 报错" failed to install service or service already installed" 解决方法: www.2cto.com

GlusterFS分布式文件系统的安装配置教程

GlusterFS主要应用在集群系统中,具有很好的可扩展性.软件的结构设计良好,易于扩展和配置,通过各个模块的灵活搭配以得到针对性的解决方案.可解决以下问题:网络存储,联合存储(融合多个节点上的存储空间),冗余备份,大文件的负载均衡(分块). 由于缺乏一些关键特性,可靠性也未经过长时间考验,还不适合应用于需要提供 24 小时不间断服务的产品环境.目前适合应用于大数据量的离线应用,下面一起来看GlusterFS分布式文件系统的安装配置 GlusterFS是一个开源的分布式文件系统,用户可以使用多台

原创:.NET版分布式缓存Memcached测试实例

下面测试下分布式缓存Memcached软件,一直在学习关注大访问量网站的缓存是如何实现,之前看过Memcached的资料,忙于没有时间来真正测试一下,本文测试分布式缓存Memcached的环境如下:(两台电脑作为服务器) 第一台: CPU:Inter(R) Pentium(R) 4 CPU 2.8G 内存:1G 系统:windows 7 IIS: IIS 7 IP:172.10.1.97 环境:本地 安装:memcached 1.2.1 for Win32 第二台: CPU:Inter(R) P

关于分布式缓存Memcached详解

关于分布式缓存memcached详解 libevent事件机制 memcached基于libevent事件处理,用相关资料上描述,libevent是个程序库,它将linux的epoll.bsd类操作系统的kqueue等事件处理功能封装成统一的接口.即使对服务器的连接数增加,也能发挥o(1)的性能. memcached服务器,缓存数据都是以key-value hash表的内存存储,最大key不超过250个字符,最大value项默认不超过1m,因此重启程序和服务器都会导致数据丢失,但它会消耗更低的c

由&amp;quot;缓存&amp;quot;到&amp;quot;Memcached分布式缓存&amp;quot;

[学习背景] 在ITOO4.0的时候,自己听了师哥师姐的技术分享,从那开始,Memcached 就留在脑海中了.现在,我们开始了ITOO4.1,在师父的指导下,开始缓存的学习.自然地,我第一时刻想到的便是Memcached. [学习阶梯] 在正是进入Memcached之前,自己先了解了些关于"缓存"的知识. 一.什么是缓存 用来暂时存储数据,避免频繁连接数据库或磁盘文件.一般来说,缓存比数据库或磁盘容量更小,但存取速度快. 二.缓存的作用 存储频繁访问的数据:临时存储耗时的计算结果:内

图片-memcache与couchbase安装在同一台服务器上出错

问题描述 memcache与couchbase安装在同一台服务器上出错 小弟最近碰到了服务器做缓存服务同时安装了memcache与couchbase两个缓存应用,但是实际运行时报缓存错误,报错截图如下 不过分到不同的机子上安装的话就没有这个问题了.请问这是什么原因,应该不是端口占用吧,占用的话服务应该起不来. 解决方案 楼上这位哥哥你回答的这是什么?

CYQ.Data V5 分布式缓存MemCached应用开发介绍

前言 今天大伙还在热议关于.NET Core的东西,我只想说一句:在.NET 跨平台叫了这么多年间,其实人们期待的是一个知名的跨平台案例,而不是一堆能跨平台的消息. 好,回头说说框架:  在框架完成数据库读写分离的功能后,开始回想起2年前所构思的:关于框架集成分布式缓存MemCached的实现. 之前一直没动手,是因为思路比较飘,秉承着框架应该简单干净轻量引用无依赖和使用不复杂的思维: 看着MemCached的服务端协议,整天思考着自己用Socket写一个客户端. 后来可能是没激情,迟迟没动手.

分布式缓存BeIT Memcached简介

或许你还没有用到过分布式缓存,在web集群的情况下,它可以很好的让一部分常用数据常驻服务器内存而不用担心各台web不同步.下面稍微介绍一下beitmemcached对于.net的支持,官方参考http://code.google.com/p/beitmemcached/ 一个完整的操作步骤:1.点击上面页面的downloads,把Memcached_1.2.5.zip 和BeITMemcached_source_2008_05_31.zip两个压缩包下在下来.2.解压Memcached_1.2.