memcache-命令-stats

curr_items     #当前缓存中缓存的对象数目
total_items    #表示从缓存服务启动到现在,系统存储过所有对象的数据,包括已经从缓存中删除的对象

cmd_get    #累计获取数据的数目,执行一次get就加1
cmd_set    #累计保存数据的条目,执行成功才加1

get_hits      #表示获取数据成功的次数
get_misses    #表示获取数据失败的次数
evictions     #为获取空闲内存而删除的item数

了解memcache的缓存策略:
memcache的缓存策略是LRU(最近最少使用),加上到期失效策略。当在memcached内存储数据项时,你有可能会指定它缓存失效的时间,默认0表示永久。当memcached服务器用完分配的内存时,失效的数据被首先替换,然后是最近未使用的数据。在LRU中,memcached使用的是一种Lazy Expiration策略,自己不会监控存入的key/vlue对是否过期,而是在获取key值时查看记录的时间戳,检查key/value对空间是否过期,这样可减轻服务器的负载。

curr_connections      #当前memcache打开的连接数

对于通过使用addServer来创建的连接,默认使用长连接方式。使用close方法并不能关闭长连接,要关闭长连接,需要服务器重启。

缓存命中率的计算公式:

    $hitPrecent = get_hits/cmd_get

等式:

get_misses + get_hits = cmd_get

分布式算法(Consistent Hashing):

选择服务器算法有两种,一种是根据余数来计算分布,另一种是根据散列算法来计算分布。
  1. 余数算法:
    先求得键的整数散列值,再除以服务器台数,根据余数确定存取的服务器操作对象,这种方法计算简单,高效,但当memcached服务器增加或减少时,几乎所有的缓存都会失效。

  2. 散列算法:
    先算出memcached服务器的散列值,并将其分布到0到2的32次方的圆上,然后用同样的方法算出存储数据的键的散列值并映射至圆上,最后从数据映射到的位置开始顺时针查找,将数据保存到查找到的第一个服务器上,如果超过2的32次方,依然找不到服务器,就将数据保存到第一台memcached服务器上。如果添加了一台memcached服务器,只在圆上增加服务器的逆时针方向的第一台服务器上的键会受到影响。

你可能感兴趣的:(memcache,stats,curr-items)