memcached c#

1.下载Memcached For Windows

  URL:http://code.jellycan.com/files/memcached-1.2.6-win32-bin.zip

2.管理员身份运行cmd

3.在Windows中安装Memcached服务:memcached.exe -d install(那么,对应卸载命令为:memcached.exe -d uninstall

4.启动 net start "Memcached Server"

5.停止服务 net stop "Memcached Server"

6.

 下载文件:http://pan.baidu.com/s/1w9Q8I

  memcached clientlib项目地址:http://sourceforge.net/projects/memcacheddotnet/

  解压该包,里面有1.1和2.0两个版本的,这里我们使用2.0版本的。(在压缩包中的目录地址为:\memcacheddotnet_clientlib-1.1.5\memcacheddotnet\trunk\clientlib\src\clientlib\bin\2.0\Release)

7.创建控制台项目

8.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Memcached.ClientLibrary;

namespace testMemcached1
{
    class Program
    {
        static void Main(string[] args)
        {
            // Memcached服务器列表
            // 如果有多台服务器,则以逗号分隔,例如:"192.168.80.10:11211","192.168.80.11:11211"
            string[] serverList = { "192.168.1.116:11211" };
            // 初始化SocketIO池
            string poolName = "MyPool";
            SockIOPool sockIOPool = SockIOPool.GetInstance(poolName);
            // 添加服务器列表
            sockIOPool.SetServers(serverList);
            // 设置连接池初始数目
            sockIOPool.InitConnections = 3;
            // 设置连接池最小连接数目
            sockIOPool.MinConnections = 3;
            // 设置连接池最大连接数目
            sockIOPool.MaxConnections = 5;
            // 设置连接的套接字超时时间(单位:毫秒)
            sockIOPool.SocketConnectTimeout = 1000;
            // 设置套接字超时时间(单位:毫秒)
            sockIOPool.SocketTimeout = 3000;
            // 设置维护线程运行的睡眠时间:如果设置为0,那么维护线程将不会启动
            sockIOPool.MaintenanceSleep = 30;
            // 设置SockIO池的故障标志
            sockIOPool.Failover = true;
            // 是否用nagle算法启动
            sockIOPool.Nagle = false;
            // 正式初始化容器
            sockIOPool.Initialize();

            // 获取Memcached客户端实例
            MemcachedClient memClient = new MemcachedClient();
            // 指定客户端访问的SockIO池
            memClient.PoolName = poolName;
            // 是否启用压缩数据:如果启用了压缩,数据压缩长于门槛的数据将被储存在压缩的形式
            memClient.EnableCompression = false;

            Console.WriteLine("----------------------------测试开始----------------------------");
            //// 01.简单的添加与读取操作
            //memClient.Set("test1", "chm1");
            //Console.WriteLine("test1:{0}", memClient.Get("test1"));
            //// 02.先添加后修改再读取操作
            //memClient.Set("test2", "chm2");
            //Console.WriteLine("test2:{0}", memClient.Get("test2"));
            //memClient.Set("test2", "chm22");
            //Console.WriteLine("test2:{0}", memClient.Get("test2"));
            //memClient.Replace("test2", "chm222");
            //Console.WriteLine("test2:{0}", memClient.Get("test2"));
            //// 03.判断Key值是否存在
            //if (memClient.KeyExists("test2"))
            //{
            //    Console.WriteLine("Key:test2 存在");
            //}
            //// 04.删除指定Key值的数据
            //memClient.Add("test3", "chm3");
            //Console.WriteLine("test3:{0}", memClient.Get("test3"));
            //memClient.Delete("test3");
            //if (!memClient.KeyExists("test3"))
            //{
            //    Console.WriteLine("Key:test3 不存在");
            //}
            //// 05.设置数据过期时间:5秒后过期
            //memClient.Add("test4", "chm4", DateTime.Now.AddSeconds(5));
            //Console.WriteLine("test4:{0}", memClient.Get("test4"));
            //Console.WriteLine("请等待3秒钟");
            //System.Threading.Thread.Sleep(3000);
            //Console.WriteLine("test4:{0}", memClient.Get("test4"));
            //System.Threading.Thread.Sleep(2000);
            //Console.WriteLine("请等待2秒钟");
            //if (!memClient.KeyExists("test4"))
            //{
            //    Console.WriteLine("test4 过期了");
            //}
            //06 测试存储对象
            UserInfoEntity uie = new UserInfoEntity() { UserId = 1, UserName = "wt1", UserBirthday = Convert.ToDateTime("1988-09-28") };
            memClient.Set("wt", uie);
           var obj= memClient.Get("wt");
            UserInfoEntity uieGet = obj as UserInfoEntity;
            Console.WriteLine(uie.ToString());
            Console.WriteLine("----------------------------测试完成----------------------------");

            // 关闭SockIO池
            sockIOPool.Shutdown();

            Console.ReadKey();
        }
    }
}

  

时间: 2024-10-13 03:11:02

memcached c#的相关文章

关于win下Memcached安装步骤

2天对我来说有点煎熬..数据量达到17w的时候 我本地执行查询速度特别慢! 请教了一些php大牛如何解决速度问题,在加了索引和优化sql后还是速度慢!我决定在win环境下用Memcached和memcache 来处理,先声明一下: memcache是php的拓展,memcached是客户端,复杂的说:Memcache模块提供了于memcached方便的面向过程及面向对象的接口,memcached是为了降低动态web应用 从数据库加载数据而产生的一种常驻进程缓存产品. 因为我本地用的是xampp集

memcached安装

今天有台服务器需要迁移业务安装memcached,以前没有安装过,按照网上步骤尝试了下,并且记录了安装过程. 安装包准备: libevent-1.4.14b-stable.tar.gz memcached-1.4.5.tar.gz 首先安装libevent: tar zxvf libevent-1.4.14-stable.tar.gz -C /usr/local/ cd libevent-1.4.14-stable/ ./configure -prefix=/usr/libevent make

Linux下安装搭建Memcached集群环境

Linux下安装搭建Memcached集群环境

linux编译安装memcached

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载. 它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度. Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以 用任何语言来编写,并通过memcached协议与守护进程通信. 1.memcached安装: 安装开发包:yum -y install gcc 安装memcached相应依赖组件: yum -y ins

(apache+tomcat集群+memcached番外篇)单台tomcat的session信息的2种持久化方式

为什么要实现搭建tomcat集群环境呢?主要因为单个tomcat无论从吞吐量和并发数上,会达到一定的极限.如果访问量超过单个tomcat的承受能力的话,tomcat一般要么拒绝提供服务,要么直接宕掉.所以,必须要依靠tomcat集群技术.举个最简单的例子,拿"送快件"比喻,如果一个人,5分钟送一件,一小时之内,送10个,一个人完全能胜任这项工作.假设现在到了双十一,要求1小时,送100个, 那怎么办?只能安排更多的人加入"送快件"这项工作中来.这其实和集群一个道理.

修改memcached服务的端口号

windows下修改memcached服务的端口号(默认端口:11211) 如果不是作为服务启动memcached的话,memcached -p 端口号就可以了. 通过修改注册表可以简单实现 运行:regedit打开注册表,搜索memcached或者按下面的目录查找: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server 其中的ImagePath项的值为:"c:\memcached\memcached.exe&

基于nginx+tomcat的负载均衡以及memcached解决交叉存储

nginx是以多进程的方式工作的,有一个master进程和多个worker进程master进程用来管理worker进程(1)向各worker进程发送信号(2)监控worker进程,当一个worker进程出现异常后,会启动新的worker进程. master进程会先建立好需要监听的socket,fork函数生成子进程workers,继承scoket,一般来讲,当有连接进入后,所有accept在这个socket上面的进程都会收到通知,而只有一个进程会accept这个连接,其它都会失败.  --->

第八章 企业项目开发--分布式缓存memcached

注意:本节代码基于<第七章 企业项目开发--本地缓存guava cache> 1.本地缓存的问题 本地缓存速度一开始高于分布式缓存,但是随着其缓存数量的增加,所占内存越来越大,系统运行内存越来越小,最后系统会被拖慢(这一点与第二点联系起来) 本地缓存存于本机,其缓存数量与大小受本机内存大小限制 本地缓存存于本机,其他机器的访问不到这样的缓存 解决方案:分布式缓存 Jboss cache:缓存还存于本机,但是会同步更新到其他机器(解决了第三个问题,解决不了第一和第二个问题),如果缓存机器数量很多

memcached完全剖析–1. memcached的基础

系列文章导航: memcached完全剖析–1. memcached的基础 memcached全面剖析–2. 理解memcached的内存存储 memcached全面剖析–3. memcached的删除机制和发展方向 memcached全面剖析–4. memcached的分布式算法 memcached全面剖析–5. memcached的应用和兼容程序 翻译一篇技术评论社的文章,是讲memcached的连载.fcicq同学说这个东西很有用,希望大家喜欢. 发表日:2008/7/2 作者:长野雅广(

memcached全面剖析--4

memcached的分布式算法   memcached的分布式 正如第1次中介绍的那样, memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能. 服务器端仅包括 第2次. 第3次 前坂介绍的内存存储功能,其实现非常简单. 至于memcached的分布式,则是完全由客户端程序库实现的. 这种分布式是memcached的最大特点. memcached的分布式是什么意思? 这里多次使用了“分布式”这个词,但并未做详细解释. 现在开始简单地介绍一下其原理,各个客户端的实现基本相