通常来说,缓存的粒度越小,缓存的命中率越高.
当缓存单个对象的时候,只有当该对象对应的数据发生变化时,我们才需要更新缓存或者让移除缓存。而当缓存一个集合的时候,其中任何一个对象对应的数据发生变化时,都需要更新或移除缓存。
一般命中率低有2个概念,概念1:数字的表现上,比如50%,这和命中率100%相比,肯定是低的。概念2:命中率是否影响客户机使用了,如果没影响,即便命中率是1%,也无所谓,所以这个指标应该是由网民来衡量的,他们说慢了,说卡了,说没以前快了(当然除了命中率低会导致慢、卡、没以前快,网络也是非常重要的),那才是真正的低,如果只是看数字表面是没任何意义的,同时只有理解了这一点,你才能真正的理解命中率的意义以及影响.
Redis提供了INFO这个命令,能够随时监控服务器的状态,redis只能看到命中数量和未命中的数量。
telnet localhost 6379
info
通过计算hits和miss,我们可以得到缓存的命中率:14414110 / (14414110 + 3228654) = 81%.
连接上memcache,然后直接输入stats就可以得到当前memcache的状态。
cmd_get
get命令(获取)总请求次数
get_hits
总命中次数
缓存命中率 = get_hits/cmd_get * 100%