.NET 使用CouchBase 基础篇
2011年2月,CouchOne和memebase合并后,改名为Couchbase,官网地址(www.couchbase.com)。membase最后一个版本为1.7.2,可在Couchbase的官网下载(http://www.couchbase.com/downloads-all)。
这里不介绍couchbase的安装,只介绍.NET Client Librarye 使用。
- 获得CouchBase For Net的SDK有两种方式
- 通过nuget,Install-Package CouchbaseNetClient
- 通过官网下载http://www.couchbase.com/communities/net
- 开始CouchBase之旅
- 创建项目,这里需要提醒的是,在vs2010中我们创建类Console应用程序时项目默认使用.NET Framework Client Profile,我们需要手动切换至full .NET Framework。
- 在程序中配置CouchBase,CouchBase提供编码配置和配置文件配置,当然使用app.config是最灵活的,这里是我们的首选,添加以下信息至你的配置文件,
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="couchbase" type="Couchbase.Configuration.CouchbaseClientSection, Couchbase"/>
</configSections>
<couchbase>
<servers bucket="default" bucketPassword="">
<add uri="http://192.168.0.2:8091/pools"/>
<add uri="http://192.168.0.3:8091/pools"/>
</servers>
</couchbase>
</configuration>这里使用了集群配置的url列表,当然在你本地调试只需要一个地址,默认CouchBase在安装时会创建一个没有密码的default的缓存桶(bucket),你可以自由修改这块的信息。(如果对bucket不太明白,请自行google)。
- 添加引用
|
using Couchbase; using Couchbase.Configuration; using Couchbase.Extensions; using Enyim.Caching; using Enyim.Caching.Configuration; using Enyim.Caching.Memcached; |
根据实际引用添加引用
- 创建实例及使用
|
var client = new CouchbaseClient(); // 创建实例 client.Store(StoreMode.Add, "somekey", "somevalue"); //存储数据 var someValue = client.Get("somekey") as string; //获取数据 var someValue = client.Get<string>("somekey"); //获取数据 |
以上是简单基本类型的使用,下面我们介绍一下复杂类型。先申明一个类
|
[Serializable] |
|
var key = Guid.NewGuid(); var beer = client.Get<Beer>("beer_" + key); |
在CouchBase2.0正式版就开始支持json,这一点让人激动人心。
存储json数据
|
public static bool StoreJson<T>(this CouchbaseClient client, StoreMode storeMode, string key, T value) where T : class { |
获取json数据
|
public static T GetJson<T>(this CouchbaseClient client, string key) where T : class { |
Client使用方法
|
var key = Guid.NewGuid(); var beer = client.GetJson<Beer>("beer_" + key); |
- 检查和操作结果
官方的说明
For check and set operations, the return values are wrapped in a CasResult instance. The success of the operation is still determined by a Boolean and detailed failures still require logging.
|
var result = client.GetWithCas("foo"); |
- 获取详细操作结果
如果你需要获取运行时的详细信息,你可以使用IoperationResult API方法,下面是官方给的API属性的说明。
Each of these methods shares its name with a method from the single-value return API, but prefixed with "Execute." For example, Get() becomes ExecuteGet() and Store() becomes ExecuteStore().
var getResult = client.ExecuteGet<Beer>("beer_heady_topper"); if (casResult.Success) { |
- 配置日志
CouchBase支持Log4Net和Nlog,你可以自己现在或者从CouchBase提供的SDK获取。
Log4Net 配置参考。
|
<?xml version="1.0" encoding="utf-8"?> |
更多Log4Net配置可参考:http://logging.apache.org/log4net/release/manual/configuration.html.
Nlog配置参考
|
<?xml version="1.0" encoding="utf-8"?> |
更多Nlog配置可参考:http://nlog-project.org/wiki/Configuration_file
总结 :以上信息来源官方的Getting Started,另附一份自己整理的Demo。(通过office word 发布的文档格式有些变形)
.NET 使用CouchBase 基础篇的更多相关文章
- C#多线程之基础篇3
在上一篇C#多线程之基础篇2中,我们主要讲述了确定线程的状态.线程优先级.前台线程和后台线程以及向线程传递参数的知识,在这一篇中我们将讲述如何使用C#的lock关键字锁定线程.使用Monitor锁定线 ...
- 一步步学习javascript基础篇(0):开篇索引
索引: 一步步学习javascript基础篇(1):基本概念 一步步学习javascript基础篇(2):作用域和作用域链 一步步学习javascript基础篇(3):Object.Function等 ...
- 2000条你应知的WPF小姿势 基础篇<15-21>
在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师,对C#和WPF有着极深的热情.最为出色的是他维护了两个博客:2,000Things You Should Know ...
- ABP框架实践基础篇之开发UI层
返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 说明 其实最开始写的,就是这个ABP框架实践基础篇.在写这篇博客之前,又回头复习了一下ABP框架的理论,如果你还没学习,请查看AB ...
- C#多线程之基础篇2
在上一篇C#多线程之基础篇1中,我们主要讲述了如何创建线程.中止线程.线程等待以及终止线程的相关知识,在本篇中我们继续讲述有关线程的一些知识. 五.确定线程的状态 在这一节中,我们将讲述如何查看一个线 ...
- C#多线程之基础篇1
在多线程这一系列文章中,我们将讲述C#语言中多线程的相关知识,在多线程(基础篇)中我们将学习以下知识点: 创建线程 中止线程 线程等待 终止线程 确定线程的状态 线程优先级 前台线程和后台线程 向线程 ...
- iOS系列 基础篇 03 探究应用生命周期
iOS系列 基础篇 03 探究应用生命周期 目录: 1. 非运行状态 - 应用启动场景 2. 点击Home键 - 应用退出场景 3. 挂起重新运行场景 4. 内存清除 - 应用终止场景 5. 结尾 本 ...
- iOS系列 基础篇 04 探究视图生命周期
iOS系列 基础篇 04 探究视图生命周期 视图是应用的一个重要的组成部份,功能的实现与其息息相关,而视图控制器控制着视图,其重要性在整个应用中不言而喻. 以视图的四种状态为基础,我们来系统了解一下视 ...
- iOS系列 基础篇 05 视图鼻祖 - UIView
iOS系列 基础篇 05 视图鼻祖 - UIView 目录: UIView“家族” 应用界面的构建层次 视图分类 最后 在Cocoa和Cocoa Touch框架中,“根”类时NSObject类.同样, ...
随机推荐
- Working with HTTP
A WebClient façade class for simple download/upload operations via HTTP or FTP WebRequest and WebRes ...
- github仓库的克隆、修改、上传方法(图)
- IO字 节流/字符流 读取/写入文件
流是指一连串流动的数据信号,以先进,先出的方式发送和接收的通道 流的分类根据方向分为输入流所有接收,获得,读取的操作都是属于输入流所有的输入流名字都带有input或Reader 输出流所有发送,写的操 ...
- bootstrap使用性能问题
1.如icheckbox等的初始化,不要采用类似for in的循环来对所需应用的元素进行初始化,直接采用如 $('[data-toggle="popover"]').popove ...
- 杭电ACM 1201
#include <stdio.h> int func(int year){ if ( year % 400 == 0 || (year % 4 == 0 &&year % ...
- Color Space: Ycc
在进行图像扫描时,有一种重要的扫描输入设备PhotoCd,由于PhotoCd在存储图像的时候要经过一种模式压缩,所以PhotoCd采用了Ycc颜色空间,此空间将亮度作由它的主要组件,具有两个单独的颜色 ...
- javac编译、运行
java源码(包结构) 源码存放位置:C:/Users/liaolongjun/DeskTop/java/ package test; import test.sub.F; public class ...
- kuohao
#include <stdio.h> int b[50]; int a[50]; int w[50]; int main() { freopen("in.txt",&q ...
- CentOS7安装mysql5.6.23
============安装glibc版本============== 一.下载glibc版本的Mysql mysql-advanced-5.6.23-linux-glibc2.5-x86_64.zi ...
- 【java基础学习】数据库编程
数据库编程 import java.sql.*; public class JdbcDemo1{ public static void main(String[] args){ try{ //1.加载 ...