stats 说明:
pid |
memcache服务器的进程ID |
uptime |
服务器已经运行的秒数 |
time |
服务器当前的unix时间戳 |
version |
memcache版本 |
pointer_size |
当前操作系统的指针大小(32位系统一般是32bit) |
rusage_user |
进程的累计用户时间 |
rusage_system |
进程的累计系统时间 |
curr_items |
服务器当前存储的items数量 |
total_items |
从服务器启动以后存储的items总数量 |
bytes |
当前服务器存储items占用的字节数 |
curr_connections |
当前打开着的连接数 |
total_connections |
从服务器启动以后曾经打开过的连接数 |
connection_structures |
服务器分配的连接构造数 |
cmd_get |
get命令(获取)总请求次数 |
cmd_set |
set命令(保存)总请求次数 |
get_hits |
总命中次数 |
get_misses |
总未命中次数 |
evictions |
为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items) |
bytes_read |
总读取字节数(请求字节数) |
bytes_written |
总发送字节数(结果字节数) |
limit_maxbytes |
分配给memcache的内存大小(字节) |
threads |
当前线程数 |
1>、uptime 是memcached运行的秒数,
2>、cmd_get是查询缓存的次数。
3>、这两个数据相除一下就能得到平均每秒请求缓存的次数——最近niupu的流量很低,所以平均也就一秒请求一次多,
这么点大的压力,用文件系统缓存一样没问题,根本不会体现出使用memcached的优越。
4>、下面的cmd_set 就是设置key=>value的次数。整个memcached是个大hash,用cmd_get没有找到的内容,就会调用一下cmd_set写进缓存里。
5>、紧跟着是get_hits,就是缓存命中的次数。缓存命中率 = get_hits/cmd_get * 100%。
6>、下面的get_misses的数字加上get_hits应该等于cmd_get。
7>、而total_items、curr_items表示现在在缓存中的键值对个数.
8>、在图上total_items == cmd_set,不过当可用最大内存用光时,memcached就会删掉一些内容,上面的等式就不成立了
stats items
输出各个slab中的item信息。s
stats slabs
输出slab中更详细的item信息
stats sizes
输出所有item的大小和个数
stats cachedump <slab_id> <limit_num>
根据<slab_id>输出相同的<slab_id>中的item信息。<limit_num>是输出的个数,当<limit_num>为0是输出所有的item。
7、高级缓存细节查看方法:
stats reset
清空统计数据
stats malloc
显示内存分配数据
stats cachedump slab_id limit_num
显示某个slab中的前limit_num个key列表,显示格式如下
ITEM key_name [ value_length b; expire_time|access_time s]
其中,memcached 1.2.2及以前版本显示的是 访问时间(timestamp)
1.2.4以上版本,包括1.2.4显示 过期时间(timestamp)
如果是永不过期的key,expire_time会显示为服务器启动的时间
stats cachedump 7 2
ITEM copy_test1 [250 b; 1207795754 s]
ITEM copy_test [248 b; 1207793649 s]
stats slabs
显示各个slab的信息,包括chunk的大小、数目、使用情况等
stats items
显示各个slab中item的数目和最老item的年龄(最后一次访问距离现在的秒数)
stats detail [on|off|dump]
设置或者显示详细操作记录
参数为on,打开详细操作记录
参数为off,关闭详细操作记录
参数为dump,显示详细操作记录(每一个键值get、set、hit、del的次数)
8、清空所有键值
flush_all
注:flush并不会将items删除,只是将所有的items标记为expired,因此这时memcache依旧占用所有内存。
8、退出
quit
memcache内部结构图
相关推荐
3. **分布式架构**:多个Memcache服务器可以组成集群,通过一致性哈希算法分散数据存储,实现负载均衡。 ### 三、主要特性 1. **高性能**:基于非阻塞I/O模型,采用多线程处理,可以高效地处理大量并发请求。 2. ...
- 哈希分布:Memcache内部使用一致性哈希算法,将键映射到特定服务器,减少因服务器增减导致的数据重新分布。 - 序列化与反序列化:默认情况下,PHP的Memcache扩展会自动处理数据的序列化和反序列化,允许存储复杂...
Memcache是一种广泛应用于Web开发中的分布式内存对象缓存系统,它能够提高应用程序的性能,通过在内存中存储数据,减少对数据库的访问次数。在这个压缩包文件中,我们看到一个由阿里巴巴软件的架构师岑文初封装的...
“源码”标签可能意味着本文将深入探讨MemCache的内部机制,包括其数据结构、缓存淘汰策略(如LRU,Least Recently Used)、网络通信协议等方面。理解这些有助于开发者优化使用或者为社区贡献代码。 **六、使用工具...
根据描述,这个问题在个人使用过程中得到了解决,通过对原有的MemCacheClient类库进行了修改,使其能在单位内部的VS环境中顺利运行。这可能涉及到对库的源代码进行调整,以适应特定的编译器选项、链接器设置或者兼容...
PHP7的不同版本(例如php7.0、php7.1和php7.2)可能需要对应版本的memcache.dll文件,因为每新版本的PHP可能会有内部结构或API的改变,这可能导致旧的DLL文件无法正常工作。因此,确保使用与当前PHP版本匹配的...
1. `src/`目录:这里是Memcache的核心源码,包括了各种数据结构、网络通信、内存管理和缓存策略的实现。 2. `include/`目录:包含了头文件,定义了对外的接口和数据结构,供PHP的PECL扩展使用。 3. `tests/`目录:...
Memcached是一款高性能的分布式内存对象缓存系统,它主要用于减少动态数据库驱动网站...了解其内部结构和使用方式对于开发者来说是至关重要的,能够帮助他们更有效地利用这一工具来优化应用的响应速度和并发处理能力。
通过阅读和分析memcache的源码,开发者不仅可以了解其内部工作原理,还能学习到内存管理、网络编程、并发控制等多方面的知识,这对于提升个人技能和解决实际问题大有裨益。提供的分析PPT和word文档则提供了更直观的...
1. **数据结构与算法**:Memcached如何高效地存储和检索键值对,可能涉及哈希表、LRU(Least Recently Used)缓存替换策略等。 2. **网络通信**:Memcached使用TCP/IP协议进行通信,源码中会包含如何接收和发送...
这涉及到Memcached内部机制的优化,比如内存管理、网络通信和数据存储策略的调整。 3. 处理高并发和大量数据:文章中提到Facebook的系统能够处理每秒数十亿的请求并存储数万亿的数据项。为了达到这一规模,需要在...
3. **分布式架构**:Memcache支持多实例部署,可以将数据分散到多个服务器上,实现负载均衡,提高系统的可扩展性。 4. **自动过期**:为了解决数据的持久化问题,Memcache允许设置每个缓存项的过期时间,过期后自动...
4. **数据存储**:类内部使用了几个特定的键(如`LOCK_KEY`、`LENGTH_KEY`、`VALU_KEY`、`HEAD_KEY`和`TAIL_KEY`)来存储队列的状态信息,例如锁状态、队列长度、数据值、头部和尾部指针位置。 5. **方法实现**:...
**Memcache** 是一种广泛使用的开源分布式内存对象缓存系统,它能够通过存储数据到内存中来提高Web应用的性能,减少对数据库的访问压力。Memcache扩展允许PHP应用程序直接与Memcache服务器通信,执行存储、检索和...
Facebook Memcache是Facebook内部使用的一种高性能内存缓存系统,主要用于加速动态网站的数据访问速度。它通过在内存中存储经常访问的数据来减少数据库负担,提高数据读取速度。该技术由Facebook的Memcache技术负责...
2. 简单的key/value存储:数据存储通过键值对进行,不关心数据的内部结构,便于序列化和反序列化。 3. 分布式但不通信:虽然称作分布式缓存服务器,但实际上各个Memcached实例之间并不通信。分布式功能依赖于客户端...
**标题解析:** "memcache.dll for php5.3 X32" 这个...10. **替代方案**:随着技术的发展,PHP社区已经推出了一些更现代的缓存解决方案,如Redis,它提供了更多的数据结构和持久化选项,可以考虑作为memcache的替代。
**Redis** 是一个开源的、基于键值对的数据存储系统,支持多种数据结构如字符串、哈希、列表、集合和有序集合。它的速度非常快,因为数据存储在内存中,可作为缓存系统使用。同时,Redis还支持持久化,可以将内存中...
`meta_memcache` 兼容Python 3版本,"py3-none-any"表示这个库适用于任何架构和平台。 **库的主要功能** 1. **连接管理**:`meta_memcache` 提供了创建和管理到Memcached服务器的连接,支持多服务器配置,确保高...
通过深入研究memcached的源代码,我们可以理解其内部机制,从而更好地利用和优化这个工具。《memcached代码分析.pdf》这样的文档将详细讲解这些概念和实现细节,对于理解和改进缓存系统具有很高的参考价值。