高性能分布式内存对象缓存系统memcached进程(HIT )GET命中率有些低是什么原因?
[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!
最近几天一直在想着如何把站搞快一下,但是好多都是无功而返,最近又盯上了Memcached,据说缓存效果还不错,但在我这里,确实用处依然不是很大,还是记录一下;
什么是Memcached
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。
Memcached基于一个存储键/值对的HashMap,它并不提供冗余(复制其HashMap条目),当某个服务器停止运行或崩溃了,所有存放在服务器上的键/值对都将丢失。但目前Memcached的客户端和代理程序可以提供多服务器的并联方式,可以提供一定的处理能力。
Memcached与其他分布式缓存的区别
Memcached与其它常用的分布式缓存(例如EhCache、OSCache、JBoss Cache)最主要的区别在于Memcached采用集中式缓存方式(即一台或多台缓存服务器为所有应用系统提供缓存能力),自身不提供集群能力,不提供缓存复制功能;而其他分布式缓存系统采用分布式缓存方式,各个应用系统内部提供数据缓存的能力,多个缓存间采用组播或点对点的方式进行缓存同步。
在性能上来看,Memcached比其它分布式缓存系统低一半以上(未考虑大量数据在其它缓存系统进行复制的影响);但从管理方面来看,Memcached的缓存采用集中管理的模式,应用系统可以水平扩展,而其它分布式缓存在水平扩展的同时,必须同时调整缓存复制策略,一旦应用服务器节点大量扩展,对于缓存服务器间的数据复制将成几何数增加。
memcached作为一个内存缓存扩展,在提升动态网站访问速度上有着优良的表现。对于memcached的执行效果来说,命中率是一个很重要的指标,很多情况下命中率都达到90%以上;一些站长发现自己的memcached命中率较低,甚至低于60%,除了排查代码外,网站自身的访问特点也是其命中率低的天然原因,比如老梁博客的命中率就不是太高,基本在保持85%左右;如下图
memcached进程命中率有些低的解说;
网站访问量太少,同一页面访问太少;
新访客比例较高,大量的访问都来自新访客;
新访客进入产生了一个key,每一次访问看几个页面就走了,产生了get。大量访问来自新访客set,命中率天然地就低了。
问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信
所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!