Asp.Net中使用Couchbase——Memcached缓存

 本文的主要目的就是简单的进行使用Memcached。这是Memchahed的官网http://memcached.org/,不过是英文的,英文太差,没仔细看过。

http://www.cnblogs.com/dudu/archive/2009/07/19/1526407.html@dudu。找了好久,终于在大神站长这里找到一个可行的方案。网上的介绍虽然多的不能再多了,但是真正有用的也没几篇,要么就是翻来覆去的转载。

通过截图也很明显了。

安装服务端

服务端下载地址:http://www.couchbase.com/download 选择适合自己的进行下载安装就可以了,我这里选择的是Win7 64。

在安装服务端如果发生如下所示的错误,我在win7 64安装的过程中就遇到了。

这个时候可以先撤销安装。通过CMD命令运行regedit。展开HKEY_LOCAL_MACHINE\Software\Microsoft\ Windows\ CurrentVersion分支,在窗口的右侧区域找到名为“ProgramFilesDir”的键值,将其原键值“C:\Program Files”改为“X:\Program Files”,关闭注册表。

我这里修改的时E盘,因为我E盘剩下的空间还蛮多的。

 

服务端安装完后,如果成功了,那么在浏览器中可以看到。如果没有那么需要手动进行访问http://localhost:8091/index.html。我是在本机安装的所以可以用localhost,可以用IP或者hostname。

点击SETUP,默认设置,然后点击Next,Next,Next,然后到了下面

简单的输入基本信息,继续Next。

在此我输入密码123456,继续Next,最终完成配置到达页面。

当然安装完之后也可以在服务中查看了。

客户端调用

 创建一个控制台应用程序,然后通过Nuget进行安装。

引用之后,编译项目,查看到已引用的dll文件

引用完毕通过代码进行简单的调用

using Couchbase;
using Couchbase.Configuration;
using Enyim.Caching;
using Enyim.Caching.Configuration;
using Enyim.Caching.Memcached;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MemcachedTest
{
    class Program
    {
        static void Main(string[] args)
        {
            //配置服务器   
            var mbcc = new CouchbaseClientConfiguration();
            //设置各种超时时间   
            mbcc.SocketPool.ReceiveTimeout = new TimeSpan(0, 0, 2);
            mbcc.SocketPool.ConnectionTimeout = new TimeSpan(0, 0, 4);
            mbcc.SocketPool.DeadTimeout = new TimeSpan(0, 0, 10);
            //使用默认的数据库   
            mbcc.Urls.Add(new Uri("http://127.0.0.1:8091/pools/default"));

            //建立一个Client,装入Client的配置   
            var client = new CouchbaseClient(mbcc);
            //添加一条数据   
            var item = client.Cas(StoreMode.Add, "Test", "Hello World!");
            //获取刚添加的数据   
            Console.WriteLine(client.Get("Test"));
            Console.WriteLine("完成!");
            Console.ReadLine();
        }
    }
}

首次运行获取设置的缓存值肯定没问题。

现在我们将这句设置值的进行注释

            var item = client.Cas(StoreMode.Add, "Test", "Hello World!");

修改后的代码如下

            //配置服务器   
            var mbcc = new CouchbaseClientConfiguration();
            //设置各种超时时间   
            mbcc.SocketPool.ReceiveTimeout = new TimeSpan(0, 0, 2);
            mbcc.SocketPool.ConnectionTimeout = new TimeSpan(0, 0, 4);
            mbcc.SocketPool.DeadTimeout = new TimeSpan(0, 0, 10);
            //使用默认的数据库   
            mbcc.Urls.Add(new Uri("http://127.0.0.1:8091/pools/default"));

            //建立一个Client,装入Client的配置   
            var client = new CouchbaseClient(mbcc);
            //添加一条数据   
            //var item = client.Cas(StoreMode.Add, "Test", "Hello World!");
            //获取刚添加的数据   
            Console.WriteLine(client.Get("Test"));
            Console.WriteLine("完成!");
            Console.ReadLine();

再次运行值还是被获取到了。


//===========================================================

一. 下载安装包

首先,到官网下载安装包:http://www.couchbase.com/

 

下载的地址:http://www.couchbase.com/download

选择 Windows 的版本。如果你选 32 位版,那么文件为:couchbase-server-enterprise_2.5.0_x86.setup.exe,而 64 位版的安装文件为:couchbase-server-enterprise_2.5.0_x86_64.setup.exe,看来已经包含了 32 位版的内容。

 二. 安装步骤

安装步骤:

1. 进入欢迎安装的界面。

 

2. 选择安装位置

 

3. 确认安装参数,最小需要内存为 4G,处理器最小为 4 核处理器。

 

4. 安装进程

 

5. 完成安装。

 

三. 配置

1. 完成安装之后,直接就会进入 Web 管理界面进行配置。另外,在桌面上,安装程序默认就会生成一个快捷方式。

 

2. 设置磁盘存储,服务器主机,集群配置

 

3. 示例数据

 

4. 默认的 bucket 配置类型,每个节点使用的内存,注意最下面的 Flush ,选中后,可以支持 Flush, 否则不支持。

如果没有选中的话,在 .NET 客户端进行 Flush,会得到一个异常,远程服务器返回错误 400。

 

如果忘了怎么办呢?继续往后看...... 

 

5. 是否希望收到升级的提示。

 

6. 配置管理员的口令

 

四. 监控页面

配置完成之后,进入监控页面,以后,在监控页面就可以看到缓存的使用情况了。

五. 使用命令行

使用命令行允许 Flush 

安装程序比较方便,但是,你会发现,一旦安装完成,在管理界面上,没有重新配置 Flush 的选项,如果在安装的时候没有启用 Flush ,但是,在安装结束之后希望启用,怎么办呢?

Couchbase 提供了强大的命令行界面支持 couchbae-cli 来支持命令行的管理工作。这个命令位于 Couchbase 安装目录中的 \Couchbase\Server\bin 文件夹中。

对于我们启用 Flush 来说,是修改 bucket 的配置参数,需要使用 bucket-edit 命令,使用 --bucket 指定修改配置的 bucket,--enable-flush=1 表示启用,=0 显示就是禁用了。剩下的参数就是管理员的帐号和口令了。

>couchbase-cli bucket-edit --bucket=default --enable-flush=1 -c 127.0.0.1  -u Administrator -p 123456

如果成功的话,服务器会返回一个说明

SUCCESS: bucket-edit

如果配置成功了,就可以在客户端调用 Flush 了,但是,如果服务器很忙,很长时间来不及响应话,也会抛出一个异常,但是不是没有启用 Flush 的 400 ,而是 503 了。

 

另外,生成的配置文件位于 D:\Couchbase\Server\var\lib\couchbase\config 文件夹中,文件名为 config.dat。这是一个二进制的文件,不能直接编辑,必须使用工具生成。

如果使用命令行 Flush 的话,可以使用 bucket-flush 命令。使用 --bucket 指定目标。

D:\Couchbase\Server\bin>couchbase-cli bucket-flush --bucket=default -c 127.0.0.1:8091 --force -u Administrator -p 123456

返回的结果如下。

Database data will be purged from disk ...
SUCCESS: bucket-flush

 

六. .NET 客户端刷新缓存

原来的 FlushAll 方法已经过期了,现在需要使用 Couchbase.Management 命名空间中的 CouchbaeCluster 类来进行管理了。

Couchbase.Management.CouchbaseCluster cluster
    = new Couchbase.Management.CouchbaseCluster("couchbase");

cluster.FlushBucket("default");


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值