C#操作Memcached

memcached客户端库

.Net memcached client
https://sourceforge.net/projects/memcacheddotnet

.Net 2.0 memcached client
http://www.codeplex.com/EnyimMemcached

Client developed in .NET 2.0 keeping performance and extensibility in mind. (Supports consistent hashing.)
http://www.codeplex.com/memcachedproviders

BeIT Memcached Client (optimized C# 2.0)
http://code.google.com/p/beitmemcached

            int runs = 100;
            int start = 200;
            if(args.Length > 1)
            {
                runs = int.Parse(args[0]);
                start = int.Parse(args[1]);
            }

            string[] serverlist = { "192.168.0.191:11211" };//可以添加多个服务器

            //为服务器初始化IO连接池 initialize the pool for memcache servers
            SockIOPool pool = SockIOPool.GetInstance();
            pool.SetServers(serverlist);
            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();
//            SockIOPool pool = SockIOPool.Instance;
//            pool.Servers = serverlist;
//            pool.InitConn = 5;
//            pool.MinConn = 5;
//            pool.MaxConn = 50;
//            pool.MaintSleep = 30;
//            pool.SocketTO = 1000;
//            pool.Nagle = false;
//            pool.Initialize();

            //建立一个客户端实例
            MemcachedClient mc = new MemcachedClient();
            mc.EnableCompression = false;
//            MemcachedClient mc = new MemcachedClient();
//            mc.CompressEnable = false;
//            mc.CompressThreshold = 0;
//            mc.Serialize = true;

            string keyBase = "testKey";
            string obj = "这是缓存的内容,如果很大,注意序列化的开销。也可以压缩后传输。东莞市长安镇图书馆。";

            long begin = DateTime.Now.Ticks;
            for(int i = start; i < start+runs; i++)
            {                //写入缓存
                mc.Set(keyBase + i, obj);
            }
            long end = DateTime.Now.Ticks;
            long time = end - begin;

            Console.WriteLine(runs + " sets: " + new TimeSpan(time).ToString() + "ms");

            begin = DateTime.Now.Ticks;
            int hits = 0;
            int misses = 0;
            for(int i = start; i < start+runs; i++)
            {                //读缓存
                string str = (string) mc.Get(keyBase + i);
                if(str != null)
                    ++hits;
                else
                    ++misses;
            }
            end = DateTime.Now.Ticks;
            time = end - begin;

            Console.WriteLine(runs + " gets: " + new TimeSpan(time).ToString() + "ms");
            Console.WriteLine("Cache hits: " + hits.ToString());
            Console.WriteLine("Cache misses: " + misses.ToString());
            //枚举服务器的状态
            IDictionary stats = mc.Stats();
            foreach(string key1 in stats.Keys)
            {
                Console.WriteLine(key1);
                Hashtable values = (Hashtable)stats[key1];
                foreach(string key2 in values.Keys)
                {
                    Console.WriteLine(key2 + ":" + values[key2]);
                }
                Console.WriteLine();
            }

            SockIOPool.GetInstance().Shutdown();
            Console.ReadLine();
时间: 2024-10-01 08:07:14

C#操作Memcached的相关文章

通过memcache动态运行库操作memcached服务,进行CURD

具体学习参考php参考手册: 操作memcached的几种方式: bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] ) 如果报 expire 设为0 表示,永不过期.(只要memcache不重新启动,就永远在mem中) exprie 直接给的是秒数,则最大 30*3600*24 如果你希望保持时间超过30  time()+天数*3600*24 即可 mem1.php <?php //创建一个m

PHP源码来操作memcached服务

如何使用PHP源码来操作memcached服务 如果管理员不让我们去加载 memcache.dll 文件,我们可以直接通过源码操作 看高手的源代码也很有意思! 特点: 1.不需要开启memcache扩展 2.使用fsockopen()套接字连接memcached 3.同样执行执行CRUD 引用别人写的一个类: memcached-client.php <?php // // +------------------------------------------------------------

memcached—Java操作Memcached实例

前面博客介绍了如何在Windows操作系统中安装Memcached,总结一下如何使用Java操作Memcached实例: 代码一: package com.ghj.packageoftool; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import jav

memcached学习笔记5--socke操作memcached 缓存系统

使用条件:当我们没有权限或者不能使用服务器的时候,我们需要用socket操作memcached memcached-client操作 特点: 无需开启memcache扩展 使用fsocketopen()套接字连接memcached 同样执行CRUD require_once(CLASS_PATH.'memcached-client.php');//CLASS_PATH 是我定义的类文件文件夹路径 $mc = new memcached( array( 'servers' => array( '1

python 操作Memcached

启动Memcached memcached -d -m 10 -u root -l 10.211.55.4 -p 12000 -c 256 -P /tmp/memcached.pid 参数说明: -d 是启动一个守护进程 -m 是分配给Memcache使用的内存数量,单位是MB -u 是运行Memcache的用户 -l 是监听的服务器IP地址 -p 是设置Memcache监听的端口,最好是1024以上的端口 -c 选项是最大运行的并发连接数,默认是1024,按照你服务器的负载量来设定 -P 是设

python操作memcached以及分布式

memcached 是以 LiveJournal 旗下 Danga Interactive 公司的 Brad Fitzpatric 为首开发的一款软件.现在已成为 mixi.Facebook.LiveJournal 等众多服务中提高 Web 应用扩展性的重要因素. 许多 Web 应用都将数据保存到 RDBMS 中,应用服务器从中读取数据并在浏览器中显示.但随着数据量的增大.访问的集中,就会出现 RDBMS 的负担加重.数据库响应恶化.网站显示延迟等重大影响.这时就该 memcached 大显身手

Memcached技术04 PHP操作memcached(一)

如何使用php程序操作我们的memcached服务 danga公司为了能够让php程序能够操作memcached,专门提供了一套供php使用的扩展程序(即php_memcache.dll) 步骤,准备工作. (1) 把 php_memcache.dll 文件拷贝 php的ext 下 ? 不同版本的php 所使用的 php_memcache.dll 的版本不一样 (2) 修改php.ini文件,加载 php_memcache.dll (该文件就是封装了一堆函数) ;加载php_memcache.d

PHP操作Memcached的各种数据方式

首先,在实现所说的东西之前,要先确定好这么三件事: 1:安装了Memcached. 2:Memcached支持自己php所用版本. 3:开启了Memcached服务,并打开了php.ini的Memcached模块 如说上述条件都满足了,那么我就说一下如何去用php操作: 为了较为清晰的说明,而且空说无凭,所以我统一在下面的额代码里面加入测试,其中包括了我的所有测试过程: 还要说一下,这里主要测试的是数据的CURD操作. <?php //Memcached是面向对象来操作的 $mem=new Me

通过MySQL的UDFs和Trigger操作Memcached

通过MySQL的UDFs和Trigger操作Memcached UDFs是User Defined Functions的缩写,表示MySQL的用户定义函数,应用程序可以利用这些函数从MySQL 5.0以上版本的数据库中访问Memcached写入或者获取的数据.此外,MySQL从5.1版本开始支持触发器,从而可以在触发器中使用UDFs直接更新Memcached的内容,这种方式降低了应用程序设计和编写的复杂性.下面简单介绍UDFs的安装和使用. UDFs安装 安装UDFs,需要依次安装MySQL.l

Java操作Memcached

本文复制其他播客,有好的技术文章希望各位大神能告知... 谢谢. 如何使用Java操作Memcached实例: 代码一: package com.ghj.packageoftool; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import java.lan