C# MemCached分布式缓存
using System;
using System.Collections.Generic; using System.Text; using Memcached.ClientLibrary;
using System.Diagnostics; namespace TestMemcachedApp
{
class Program
{
[STAThread]
public static void Main(String[] args)
{ System.Diagnostics.Stopwatch stopwatch = new Stopwatch();
stopwatch.Start(); // 开始监视代码运行时间 string[] serverlist = { "192.168.0.107:11211" };//服务器可以是多个 //初始化池
SockIOPool pool = SockIOPool.GetInstance();
pool.SetServers(serverlist);//设置连接池可用的cache服务器列表,server的构成形式是IP:PORT(如:127.0.0.1:11211)
pool.InitConnections = ;//初始连接数
pool.MinConnections = ;//最小连接数
pool.MaxConnections = ;//最大连接数
pool.SocketConnectTimeout = ;//设置连接的套接字超时
pool.SocketTimeout = ;//设置套接字超时读取
pool.MaintenanceSleep = ;//设置维护线程运行的睡眠时间。如果设置为0,那么维护线程将不会启动,30就是每隔30秒醒来一次 //获取或设置池的故障标志。
//如果这个标志被设置为true则socket连接失败,将试图从另一台服务器返回一个套接字如果存在的话。
//如果设置为false,则得到一个套接字如果存在的话。否则返回NULL,如果它无法连接到请求的服务器。
pool.Failover = true; pool.Nagle = false;//如果为false,对所有创建的套接字关闭Nagle的算法
pool.Initialize(); // 获得客户端实例
MemcachedClient mc = new MemcachedClient();
mc.EnableCompression = false; for (int i = ; i <= ; i++) {
mc.Set(Guid.NewGuid().ToString(), "sadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahl;kfjsakldm,sa.mf,sdmnm,xnkvlhjxkclvnklsjfkldsjnfksdnfklsdnfm,dsnfm,sdnfdshfkjdshfkjdshkfjhdskjfsdfsdfsdf" + i.ToString());
// mc.Delete(i.ToString());
} //Console.WriteLine("------------测 试-----------");
//mc.Set("test", "my value"); //存储数据到缓存服务器,这里将字符串"my value"缓存,key 是"test" //if (mc.KeyExists("test")) //测试缓存存在key为test的项目
//{
// Console.WriteLine("test is Exists");
// Console.WriteLine(mc.Get("test").ToString()); //在缓存中获取key为test的项目
//}
//else
//{
// Console.WriteLine("test not Exists");
//} //mc.Delete("test"); //移除缓存中key为test的项目 //if (mc.KeyExists("test"))
//{
// Console.WriteLine("test is Exists");
// Console.WriteLine(mc.Get("test").ToString());
//}
//else
//{
// Console.WriteLine("test not Exists");
//} SockIOPool.GetInstance().Shutdown(); //关闭池, 关闭sockets // you code ....
stopwatch.Stop(); // 停止监视
TimeSpan timespan = stopwatch.Elapsed; // 获取当前实例测量得出的总时间
double hours = timespan.TotalHours; // 总小时
double minutes = timespan.TotalMinutes; // 总分钟
double seconds = timespan.TotalSeconds; // 总秒数
double milliseconds = timespan.TotalMilliseconds; // 总毫秒数
Console.WriteLine(seconds.ToString()+"用时");
Console.ReadLine();
}
}
}
C# MemCached分布式缓存的更多相关文章
- Memcached分布式缓存初体验
1 Memcached简介/下载/安装 Memcached是一个高性能的不是内存对象缓存系统,用于动态Web应用以减轻数据库负载.Memcached基于一个存储键/值对的HashMap.其客户端可以使 ...
- Memcached 分布式缓存实现原理
摘要 在高并发环境下,大量的读.写请求涌向数据库,此时磁盘IO将成为瓶颈,从而导致过高的响应延迟,因此缓存应运而生.无论是单机缓存还是分布式缓存都有其适应场景和优缺点,当今存在的缓存产品也是数不胜数, ...
- 缓存应用--Memcached分布式缓存简介
一. 什么是Memcached Memcached 是一个高性能的分布式内存 对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象 来减少读取数据库的次数,从而提供动态. ...
- Discuz!NT中集成Memcached分布式缓存
大约在两年前我写过一篇关于Discuz!NT缓存架构的文章,在那篇文章的结尾介绍了在IIS中如果开启多个应用程序池会造成多个缓存实例之间数据同步的问题.虽然给出了一个解决方案,但无形中却把压力转移到了 ...
- Memcached 分布式缓存系统部署与调试
Memcache 分布式缓存系统部署与调试 工作机制:通过在内存中开辟一块区域来维持一个大的hash表来加快页面访问速度,和数据库是独立的;目前主要用来缓存数据库的数据;存放在内存的数据通过LRU算法 ...
- memcached分布式缓存
1.memcached分布式简介 memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能.Memcache集群主机不能够相互通信传输数据,它的“分布式”是基于客户端的程序逻辑算 ...
- memcached分布式缓存系统
在数据驱动的Web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是不够灵活.此时 ...
- Memcached 分布式缓存实现原理简介
摘要 在高并发环境下,大量的读.写请求涌向数据库,此时磁盘IO将成为瓶颈,从而导致过高的响应延迟,因此缓存应运而生.无论是单机缓存还是分布式缓存都有其适应场景和优缺点,当今存在的缓存产品也是数不胜数, ...
- [Memcached]分布式缓存系统Memcached在Asp.net下的应用
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached ...
- Memcached分布式缓存快速入门
一.从单机到分布式 走向分布式第一步就是解决:多台机器共享登录信息的问题. •例如:现在有三台机器组成了一个Web的应用集群,其中一台机器用户登录,然后其他另外两台机器共享登录状态? •解决1:Asp ...
随机推荐
- 洛谷P1133 教主的花园
题目描述 教主有着一个环形的花园,他想在花园周围均匀地种上n棵树,但是教主花园的土壤很特别,每个位置适合种的树都不一样,一些树可能会因为不适合这个位置的土壤而损失观赏价值. 教主最喜欢3种树,这3种树 ...
- CentOS 7安装tunctl
cat << EOF > /etc/yum.repos.d/nux-misc.repo [nux-misc] name=Nux Misc baseurl=http://li.nux. ...
- 收集的一些MikroTik RouterOS 5.x破解版
链接:https://pan.baidu.com/s/1RyREMfrpLkpQ-AIcDQES_Q 密码:byhd
- 关于.net core程序的部署
最近发布.net core程序的时候,发现它是可以独立部署的,它支持如下两种部署方式: 依赖框架的部署FDD.只发布我们的程序,运行前用户需要手动安装.net core runtime. 独立部署SC ...
- securecrt中文乱码以及ubuntu设置locale
参考文献 http://wiki.ubuntu.org.cn/%E4%BF%AE%E6%94%B9locale http://www.bootf.com/547.html 强烈建议 ubuntu下面不 ...
- 多用StringBuilder,少用字符串拼接
在C#中,在处理字符串拼接的时候,使用StringBuilder的效率会比硬拼接字符串高很多.到底有多高,如下: static void Main(string[] args) { string st ...
- DELPHI新的变量的声明方法
DELPHI新的变量的声明方法 从DELPHI 10.3.1开始支持新的变量声明方法: procedure TForm1.查询1Click(Sender: TObject); begin var ur ...
- arcengine Annotation研究的一些学习资料(转)FeatureWeight
转自chanyinhelv原文Annotation研究的一些学习资料 下面是我最近对Annotation研究的一些学习资料,收集于此,供大家学习之用. 一.Annotation要素类介绍 在GeoDa ...
- 在NDK C++线程中如何调用JAVA API
from://http://www.eoeandroid.com/thread-150995-1-1.html 在NDK中创建的线程中, 只允许调用静态的Java API. 当在线程中调用env-&g ...
- Select、Poll与Epoll比較
(1)select select最早于1983年出如今4.2BSD中,它通过一个select()系统调用来监视多个文件描写叙述符的数组.当select()返回后,该数组中就绪的文件描写叙述符便会被内核 ...