1.Memcache概述:
memcache是一套开源的分布式高速缓存系统。由服务端和客户端组成,以守护程序(监听)方式运行于一个或多个服务器中,随时会接收客户端的连接和操作。memcache主要把数据对象缓存到内存中,通过在内存里维护一个统一的巨大的hash表。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。memcache基于一个存储键/值对的hashmap进行存储对象到内存中。memcache是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
2.Memcache特性:
- 在 Memcached中可以保存的item数据量是没有限制的,只要内存足够 。
- Memcached单进程在32位系统中最大使用内存为2G,若在64位系统则没有限制,这是由于32位系统限制单进程最多可使用2G内存,要使用更多内存,可以分多个端口开启多个Memcached进程 。
- 最大30天的数据过期时间,设置为永久的也会在这个时间过期,常量REALTIME_MAXDELTA
- 单个item最大数据是1MB,超过1MB数据不予存储,常量POWER_BLOCK 1048576进行控制
3.Memcached能缓存什么?
通过内存里维护一个统一的巨大的Hash表,Memcached能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。
4.Memcached的特点:
Memcached的缓存是一种分布式的,可以让不同主机上的多个用户同时访问,因此解决了内存功能只能单击应用的局限,更不会出现使用数据库做类似的时候,磁盘开销和阻塞的发送。开源;没有提供主从复制功能,也没有提供容灾等功能,所有所有的代码基本都是考虑性能最佳。(Redis有)
解决了什么问题:
高并发访问数据库的痛楚:死锁! 磁盘IO之痛;
多客户端共享缓存;
读写性能完美:1s/读取可以1w次;写10w;
简单搭建集群;
1.引入4个dll文件
private static readonly MemcachedClient mc = null;
static MemcacheHelper()
{
//最好放在配置文件中
string[] serverlist = { "127.0.0.1:11211", "10.0.0.132:11211" };
//初始化池
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();
// 获得客户端实例
mc = new MemcachedClient();
mc.EnableCompression = false;
}
|
请发表评论