1、 Memcache是什么
Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。
它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。
用了Memcached缓存,可以在web集群的情况下,它可以很好的让一部分常用数据常驻服务器内存而不用担心各台web不同步。
Memcache官方网站:http://www.danga.com/memcached,更多详细的信息可以来这里了解。
2、Memcached能缓存什么?
通过在内存里维护一个统一的巨大的hash表,Memcached能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。
3、Memcached快么?
非常快。Memcached使用了libevent(如果可以的话,在linux下使用epoll)来均衡任何数量的打开链接,使用非阻塞的网络I/O,对内部对象实现引用计数(因此,针对多样的客户端,对象可以处在多样的状态),使用自己的页块分配器和哈希表,因此虚拟内存不会产生碎片并且虚拟内存分配的时间复杂度可以保证为O(1).。
Danga Interactive为提升Danga Interactive的速度研发了Memcached。目前,LiveJournal.com每天已经在向一百万用户提供多达两千万次的页面访问。而这些,是由一个由web服务器和数据库服务器组成的集群完成的。Memcached几乎完全放弃了任何数据都从数据库读取的方式,同时,它还缩短了用户查看页面的速度、更好的资源分配方式,以及Memcache失效时对数据库的访问速度。
4、Memcached的特点
Memcached的缓存是一种分布式的,可以让不同主机上的多个用户同时访问,因此解决了共享内存只能单机应用的局限,更不会出现使用数据库做类似事情的时候,磁盘开销和阻塞的发生。
5、Memcached的使用(这里主要说下Memcached支持.net的分布式缓存客户端BeIT Memcached的使用)
1)解压Memcached_1.2.5.zip,它是memcached的服务器端。
2)把Memcached_1.2.5复制到你指定的缓存服务器的电脑上,比如叫做192.168.0.1。
3)cmd下运行类似命令'd:\memcached\memcached.exe -d install' 安装服务器端,这时候它应该会出现在windows服务中
4)cmd下运行类似命令'd:\memcached\memcached.exe -d start'启动服务,看服务器进程中是否有memcached进程。
5)确认服务器端口11211是否开放(防火墙设置中),否则其他机器无法访问
6)服务器端这时已经安装完毕、在其他机器上测试一下,cmd输入telnet 192.168.0.1 11211看能否登录。
7)解压BeITMemcached_source_2009_02_27.zip,它是.net 2.0开发的C#客户端,里面包含全部源代码和一个调用示例。示例中包含了Memcached命令参数的使用,简单易懂。
8)解压TestMemcached.rar,它是一个非常简单的测试程序,里面包含了BeIT Memcached
的类库dll及调用测试。
6、Memcached存储算法(Consistent Hashing)
根据短信搜索业务特点再行制定,可以参看一下:http://tech.idv2.com/2008/07/24/memcached-004/,其中主要两个亮点就是稀释节点以及环状分区段管理。稀释节点就是将原来的节点再复制几十倍,使得离散度更高,数据更加分散。环状分区段管理,就能够将数据分区管理,在加入和减少节点时对数据产生影响最低,最好的类比就是解放前的地下工作者单线联系,如果被捕不会涉及到所有的地下党同志。
-I 192.168.85.77 -m 100 -c 2048
E:\Tools\Memcached_1.2.5\memcached.exe –dstart
Mamached命令使用
1、 使用telnet登录
telnet 192.168.100.16 11211
2、 输入空格,出现“EORROR”
3、 输入查询命令“get key”,如“get HOSPITAL_LEVEL”