.NET(C#)下操作Memcahed

转载 2018年01月30日 20:27:40

一:Memcached的安装

step1. 下载memcache(http://www.runoob.com/memcached/window-install-memcached.html)的windows稳定版,解压放某个盘下面,比如在c:\memcached
step2. 在终端(也即cmd命令界面)下输入 ‘c:\memcached\memcached.exe -d install’ 安装
step3. 再输入: ‘c:\memcached\memcached.exe -d start’ 启动。

 PS: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。

二: .NET memcached client library
下载文件:https://sourceforge.net/projects/memcacheddotnet/

   将Commons.dll,ICSharpCode.SharpZipLib.dll,log4net.dll,Memcached.ClientLibrary.dll 等放到bin目录
   引用Memcached.ClientLibrary.dll

程序

using System;
using System.Collections;
using Memcached.ClientLibrary;
using System.Text;

namespace Memcache
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Request["action"] == "clear")
                    this.clear();
                else
                    this.test();
            }
        }

        public void clear()
        {
            string[] servers = { "192.168.1.113:11211", "192.168.202.128:11211" };

            //初始化池
            SockIOPool pool = SockIOPool.GetInstance();
            pool.SetServers(servers);
            pool.InitConnections = 3;
            pool.MinConnections = 3;
            pool.MaxConnections = 5;
            pool.SocketConnectTimeout = 1000;
            pool.SocketTimeout = 3000;
            pool.MaintenanceSleep = 30;
            pool.Failover = true;
            pool.Nagle = false;
            pool.Initialize();
            MemcachedClient mc = new Memcached.ClientLibrary.MemcachedClient();
            mc.EnableCompression = false;
            mc.Delete("cache");
            mc.Delete("endCache");
            Response.Write("清空缓存成功");
        }


        public void test()
        {
            //分布Memcachedf服务IP 端口
            string[] servers = { "192.168.1.113:11211", "192.168.202.128:11211" };

            //初始化池
            SockIOPool pool = SockIOPool.GetInstance();
            pool.SetServers(servers);
            pool.InitConnections = 3;
            pool.MinConnections = 3;
            pool.MaxConnections = 5;
            pool.SocketConnectTimeout = 1000;
            pool.SocketTimeout = 3000;
            pool.MaintenanceSleep = 30;
            pool.Failover = true;
            pool.Nagle = false;
            pool.Initialize();
            //客户端实例
            MemcachedClient mc = new Memcached.ClientLibrary.MemcachedClient();
            mc.EnableCompression = false;
            StringBuilder sb = new StringBuilder();
            //写入缓存
            sb.AppendLine("写入缓存测试:");
            sb.AppendLine("<br>_______________________________________<br>");
            if (mc.KeyExists("cache"))
            {
                sb.AppendLine("缓存cache已存在");
            }
            else
            {
                mc.Set("cache", "写入缓存时间:" +DateTime.Now.ToString());
                sb.AppendLine("缓存已成功写入到cache");
            }
            sb.AppendLine("<br>_______________________________________<br>");
            sb.AppendLine("读取缓存内容如下:<br>");
            sb.AppendLine(mc.Get("cache").ToString());

            //测试缓存过期
            sb.AppendLine("<br>_______________________________________<br>");
            if (mc.KeyExists("endCache"))
            {
                sb.AppendLine("缓存endCache已存在,过期时间为:" +  mc.Get("endCache").ToString());
            }
            else
            {
                mc.Set("endCache", DateTime.Now.AddMinutes(1).ToString(), DateTime.Now.AddMinutes(1));
                sb.AppendLine("缓存已更新写入到endCache,写入时间:" + DateTime.Now.ToString()  +" 过期时间:" +  DateTime.Now.AddMinutes(1).ToString());
            }

            //分析缓存状态
            Hashtable ht = mc.Stats();
            sb.AppendLine("<br>_______________________________________<br>");
            sb.AppendLine("Memcached Stats:");
            sb.AppendLine("<br>_______________________________________<br>");
            foreach (DictionaryEntry de in ht)
            {
                Hashtable info = (Hashtable)de.Value;
                foreach (DictionaryEntry de2 in info)
                {
                    sb.AppendLine(de2.Key.ToString() + ":&nbsp;&nbsp;&nbsp;&nbsp;" + de2.Value.ToString() + "<br>");
                }
            }
            Response.Write(sb.ToString());
        }
    }
}

Membase,Memcached,Couchbase1.8 C#/.NET 简单调用 操作

一直在跟关系型数据打交道,难免有些想法,因此就对NoSQL感兴趣了,在众多的开源数据库中还是选择了Membase。 具体的安装文档可以按照 http://blog.csdn.net/qq4157...
  • qq415734794
  • qq415734794
  • 2012年08月14日 17:27
  • 3469

.Net(C#)操作DBF心得

最近做了一个小项目,关于读写DBF的,把心得写下来,分享一下 首先感谢bluesky521,很多关于DBF的心得,都是从他的博客学到的,我这里只是整理一下而已(bluesky521 Blog地址:ht...
  • lukali
  • lukali
  • 2009年09月12日 20:08
  • 1453

.NET中Redis安装部署及使用方法简介附->开源Redis操作辅助类

Redis是一个用的比较广泛的Key/Value的内存数据库,新浪微博、Github、StackOverflow 等大型应用中都用其作为缓存,Redis的官网为http://redis.io/。  ...
  • chinahuyong
  • chinahuyong
  • 2016年06月24日 16:48
  • 10937

tomcat+memcahed 缓存

JSP(全称JavaServerPages)是由Sun Microsystems公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成HTML、XML或其他格式文档的Web网页...
  • fanan1995
  • fanan1995
  • 2017年05月19日 23:39
  • 234

C#.net 环境下使用OpenCV(一)

转自: http://blog.csdn.net/converse0525/article/details/5556061   首先介绍一下EmguCV 。 EmguCV a是.NET 平台...
  • ccwwff
  • ccwwff
  • 2015年05月19日 16:01
  • 4907

asp.net(c#)操作html元素

有时候我们会遇到需要在服务器端操作div标签,如果想要进行操作的话,需要在div标签中添加runat="server"属性,另外还要有设置id属性,比如: html代码: [html] v...
  • linshichen
  • linshichen
  • 2016年04月11日 10:37
  • 1680

.Net C# Txt文本文件操作

StreamWriter 类StreamWriter 类 MSDN介绍StreamWriter 构造函数 (String) 新实例初始化 StreamWriter 类为指定的文件使用默认的编码和缓冲区...
  • wanglui1990
  • wanglui1990
  • 2017年07月25日 14:29
  • 190

C#.net 操作 ppt

真是蛋疼,pdf,word,excel的数据下载功能做完了,现在又增加了ppt的数据下载功能需求,google了一下,发现这方面的资料不多,在一些国外网站上可以零零散散地找到一些相关的资料,稍作整理,...
  • xxhcust
  • xxhcust
  • 2012年05月18日 09:26
  • 2751

C#泛型之List操作示例

转自:http://blog.itpub.net/12639172/viewspace-478294/private void button1_Click(object sender, EventAr...
  • a6225301
  • a6225301
  • 2015年07月20日 09:52
  • 1602

C#.NET操作数据库通用类

下面给出了一个C#操作MS SQL Server 数据库的通用类,通过该类可以对数据库进行任何操作,包括执行SQL语句、执行存储过程。以下是其详细实现过程,希望大家共同修改优化之。稍后将介绍如何使用它...
  • ecjtuync
  • ecjtuync
  • 2007年04月25日 16:47
  • 1468
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.NET(C#)下操作Memcahed
举报原因:
原因补充:

(最多只允许输入30个字)