memcached

简介

 介绍
 这里简单介绍一下,memcached 是高效、快速的分布式内存对象缓存系统,主要用于加速 WEB 动态应用程序。

 启动
 /usr/bin/memcached -d -m 128 -l 127.0.0.1  -p 11211 -u httpd
 守护进程启动  大小128m   监听的ip是本机的 11211端口  所有者是httpd

 工作原理
 首先 memcached 是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,客户端可以由各种语言编写,
 目前已知的客户端 API 包括 Perl/PHP/Python/Ruby/Java/C#/C 等等。PHP 等客户端在与 memcached 服务建立连接之后,
 接下来的事情就是存取对象了,每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key 进行,
 保存到 memcached 中的对象实际上是放置内存中的,并不是保存在 cache 文件中的,这也是为什么 memcached 能够如此高效快速的原因。注意,这些对象并不是持久的,服务停止之后,里边的数据就会丢失。

 和memcache的区别   
 memcached从memcahce发展而来  ,提供了跟丰富的内存操作方法,性能有了很大的提升

可用工具

MemAdmin是一款可视化的Memcached管理与监控工具,基于 PHP5 & JQuery 开发,体积小,操作简单。

主要功能:
服务器参数监控:STATS、SETTINGS、ITEMS、SLABS、SIZES实时刷新
服务器性能监控:GET、DELETE、INCR、DECR、CAS等常用操作命中率实时监控
支持数据遍历,方便对存储内容进行监视
支持条件查询,筛选出满足条件的KEY或VALUE 
数组、JSON等序列化字符反序列显示
兼容memcache协议的其他服务,如Tokyo Tyrant (遍历功能除外)
支持服务器连接池,多服务器管理切换方便简洁

下载地址:[http://www.junopen.com/memadmin](http://www.junopen.com/memadmin/)
 在线地址:[http://www.xzjtcm.cn/index.php?action=set.con](http://www.xzjtcm.cn/index.php?action=set.con)

测试相关

简介
  memcached 是一款高性能的存储方式,一般用作减少数据库的负载

基础知识
命中率:get的数量/set的数量 ×100%

为什么命中率不会是100%?
memcached是key-values 的方式存储,根据最少使用和有效时间来注销的,所以get的会有失败的

存储的单位:
块-页-区  ,他们是一对多的关系

memcached的存储数据的方式
协议简单:memcached的服务器客户端通信并不使用复杂的MXL等格式,而是使用简单的基于文本的协议。

基于libevent的事件处理:libevent是个程序库,他将Linux 的epoll、BSD类操作系统的kqueue等时间处理功能封装成统一的接口。memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。

内置内存存储方式:为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启 memcached,重启操作系统会导致全部数据消失。另外,内容容量达到指定的值之后memcached回自动删除不适用的缓存。

Memcached不互通信的分布式:memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。各个memcached不会互相通信以共享信息。他的分布式主要是通过客户端实现的。

工作方式
c/s的工作方式,他们可以一对一,也可以一对多,也可以多对多

测试工具
memadmin,图形化的memcached监控工具(使用方法百度就有)

总结的测试点
1.使用了memcached后要关注命中率,和内存使用
2.要关注key-values的set和get是否成功,注意key不能重复
3.对于分布式的memcached 增加和减少要测试客户端使用的存储方式的规则
  存储规则决定了数据set和get的存数据和取数据的地址,比如简单协议,set数据的时候会对serverlist求余数然后哈希运算key值,如果你增加或者减少server
  会出现get 以前的key值取不到现象。    
  参考:
  http://www.cnblogs.com/dinglang/archive/2011/11/27/2265178.html
4.要关 块-页-区的数据分配是否合理。这个合理的意思是比如200个块
  其中前100个都被命中,后面的基本不命中 这个就是不对的
5.关注能存的使用情况  。因为一旦内存使用查过90%那么memcahed会去计算使用频率低的key-values 释放掉

登录方式
telnet ip  port(11211)

你可能感兴趣的:(memcached)