MemCached学习

来源:互联网 发布:淘宝hd里怎么找微淘 编辑:程序博客网 时间:2024/04/29 21:02

1、MemCached性能是相当好的,经测试,使用.net客户端的时候,i7笔记本电脑,十个线程访问全跑满能够实现10万次每秒的访问,而且主要压力并不是来自于memcached,而是来自于客户端的TCP访问限制。

           也就是说,若有很强劲的多台客户端服务器同时并发访问MemCached,实现几十万次每秒的访问都是有可能的。他的访问速度毫无疑问比Sql要胜出得多。

          现在内存又很便宜,对于数据量小于100G的,完全可以使用分布式MemCached将所有数据缓存起来,这样对硬盘的IO压力可以降低数十倍,现在8G内存是600块钱,80G是6千块钱,800G是六万块钱,还是能够承受的。

 

2、MemCached相对于Sql而言是处于不稳定状态的,数据容易丢失,所以不能用MemCached永久储存任何东西,而只能储存临时性东西,仅能作为减压工具。

 

3、MemCached性能好是好,但由于必须得通过TCP协议访问,这使他的速度下降很多,同样是前端服务器,访问进程内的Cache速度是访问MemCached 的一百倍.但是进程内Cache容量是有限制的,一般600M以下性能最佳,600M以上就可能出现其他各种问题,而MemCached可以将容量扩充到600G。若网站数据量很少,使用600M就能够缓存大部分内容,那么就完全没有必要使用MemCached,直接使用进程内Cache更好。

 

4、MemCached相对于Sql而言是不稳定的,但是进程内Cache的稳定性更差,对于一般的服务,微软都推荐每1440分钟重启一次进程,在此过程中,进程内Cache就会完全清空,而MemCached则更稳定,只要服务器没有挂机,内存够用,里面的数据可以一直保存,那么对于需要短时间保存,同时要求少量稳定性而言的应用就应该保存在MemCached中而不是保存在进程内Cache中,比如说用户访问网站的记录,若每次都直接记录入sql,则sql的IO压力太大,若将用户访问记录先缓存在进程内Cache,然后每几分钟刷到硬盘中一次,则由于进程内Cache太不稳定,失效的几率太大,此时用memCached正正好。一般服务器都不会重启的,偶尔重启可能也是数个月一次,那么数月一次的这种非重要数据丢失几率还是可以承受的,若使用每日丢失一两次的进程内Cache,则感觉很不好。

 

5、MemCached还有个大的缺点,那就是他是使用TCP传输数据的,要通过网卡,网卡一般都是G级口子,也就是说最大传递速度是每秒128M,而现在单个SSD硬盘就能实现500M每秒的最大访问速度,再Raid一下性能就更不得了。 所以对于数M大小的大文件而言,直接从硬盘中读取,速度将快得多。


记录一下memcached中比较重要的文章 

1、memcached for windows 修改端口和最大内存

 http://www.doc88.com/p-49613021346.html          

2、MemCachedClient,类,常用的方法说明

http://www.360doc.com/content/11/0516/12/1039473_117157506.shtml  

 

3、 Memcached 的服务端及客户端说明

http://mingxiao2010.blog.163.com/blog/static/86190481201151441346564/

 

4、memcached  windows 下多实例并存

http://hi.baidu.com/wyw5257/item/3e7970c0b2e2622e47d5c058