C#调用EnyimMemcached

最近有个项目需要调用EnyimMemcached。

首先下载了驱动的DLL(Enyim.Caching.2.12) 。

下载地址:https://files.cnblogs.com/QQ544952425/Enyim.Caching.2.12.zip

首先就是添加引用咯,然后引用命名空间。

using Enyim.Caching.Configuration;
using Enyim.Caching.Memcached;
using Enyim.Caching;


按照Demo写好了代码,进行测试

        [STAThread]
        private void button1_Click(object sender, EventArgs e)
        {
            string setstring = textBox1.Text;
            MemcachedClientConfiguration config = new MemcachedClientConfiguration();
            config.Servers.Add(new System.Net.IPEndPoint(IPAddress.Parse("10.10.10.21"), 11211));
            config.Protocol = MemcachedProtocol.Binary;
            config.Authentication.Type = typeof(PlainTextAuthenticator);
            config.Authentication.Parameters["userName"] = "memcache";
            config.Authentication.Parameters["password"] = "password";
            var mac = new MemcachedClient(config);
            //mac.Store(StoreMode.Add, "textbox1", setstring);
            mac.Store(StoreMode.Set, "textbox1", setstring);
            string str = mac.Get("textbox1") as string;
            MessageBox.Show(str);
        }

但是总是抛出异常:给定的关键字不在字典中。也就是KeyNotFountException。图如下:

看过了各个配置与节点。发现是服务器没有添加用户鉴权的参数。就注释掉了用户鉴权的部分,把代码修改如下:

        private void button1_Click(object sender, EventArgs e)
        {
            string setstring = textBox1.Text;
            MemcachedClientConfiguration config = new MemcachedClientConfiguration();//创建配置参数
            config.Servers.Add(new System.Net.IPEndPoint(IPAddress.Parse("10.10.141.21"), 11211));//增加服务节点
            config.Protocol = MemcachedProtocol.Binary;
            //config.Authentication.Type = typeof(PlainTextAuthenticator);//设置验证模式
            //config.Authentication.Parameters["userName"] = "memcache";//用户名参数
            //config.Authentication.Parameters["password"] = "password";//密码参数
            var mac = new MemcachedClient(config);//创建连接
            mac.Store(StoreMode.Add, "textbox1", setstring);//写入
            mac.Store(StoreMode.Set, "textbox1", setstring);//更新
            string str = mac.Get("textbox1") as string;//获取信息
            MessageBox.Show(str);//打印信息
        }

这样就顺利的向EnyimMemcached写入数据了^_^。

当然,缓存都是有有效时间的,虽然不知道默认的有效时间是多久,但是可以在写入的时候设置有效时间。

代码如下:

            mac.Store(StoreMode.Set, key, str, new TimeSpan(24, 0, 0));
            mac.Store(StoreMode.Add, key, str, new TimeSpan(24, 24, 24));

ok这样就完成数据的有效时间配置了。

 

posted @ 2013-05-20 14:06  瑟秋先生  阅读(1459)  评论(2编辑  收藏  举报