apache模块 mod_mem_cache
| 说明 | 基于内存的缓冲管理器 |
|---|---|
| 状态 | 扩展(E) |
| 模块名 | mem_cache_module |
| 源文件 | mod_mem_cache.c |
概述
本模块需要mod_cache提供的服务。它作为mod_cache的辅助模块工作,以提供基于内存的存储管理。mod_mem_cache模块可以按两种方法来配置:①缓存打开的文件描述符;②在堆(heap)上缓存对象。mod_mem_cache既可以用于缓存本地生成的内容,也可以用于为反向代理模式下的mod_proxy(参见ProxyPass)缓存后端服务器输出的内容。
内容将被以基于URI的索引存入和检出,但是并不保存相应的访问控制信息。
注意:
大多数情况下,mod_disk_cache都是首选。这在缓冲指南一文中有相应的解释。特别地,这个模块是每进程(per-process)类型的缓冲。
MCacheMaxObjectCount 指令
| 说明 | 最大缓存对象数 |
|---|---|
| 语法 | MCacheMaxObjectCount value |
| 默认值 | MCacheMaxObjectCount 1009 |
| 作用域 | server config |
| 状态 | 扩展(E) |
| 模块 | mod_mem_cache |
MCacheMaxObjectCount指令设定最大缓存对象数。这个值用来生成开放哈希表。如果一个新的对象要被插入缓存,而此时缓存的最大缓存对象数已达到极限,原来缓存的某个对象会被移走以允许新对象插入缓存。具体哪个对象被移走,是通过MCacheRemovalAlgorithm指令指定的算法来确定的。
示例
MCacheMaxObjectCount 13001

MCacheMaxObjectSize 指令
| 说明 | 缓存允许的最大文档大小(字节) |
|---|---|
| 语法 | MCacheMaxObjectSize bytes |
| 默认值 | MCacheMaxObjectSize 10000 |
| 作用域 | server config |
| 状态 | 扩展(E) |
| 模块 | mod_mem_cache |
MCacheMaxObjectSize指令设定允许缓存的最大文档大小(以Byte为单位)。
示例
MCacheMaxObjectSize 6400000
注意
MCacheMaxObjectSize的值必须大于MCacheMinObjectSize的值。

MCacheMaxStreamingBuffer 指令
| 说明 | 内存中允许缓冲的最大流式响应字节长度 |
|---|---|
| 语法 | MCacheMaxStreamingBuffer size_in_bytes |
| 默认值 | MCacheMaxStreamingBuffer 100000与MCacheMaxObjectSize中的小者 |
| 作用域 | server config |
| 状态 | 扩展(E) |
| 模块 | mod_mem_cache |
MCacheMaxStreamingBuffer内存中允许缓冲的最大流式响应字节长度,以决定这个流式响应是否太长而不能被缓存。流式响应是指整个响应内容无法完整地得到,并且Content-Length也末知的响应。流式响应的来源包括代理的响应内容和CGI脚本的输出。默认情况下,除非响应头包含Content-Length信息,否则流式响应不会被缓存。这样做是为了避免使用大量内存缓存那些最终因为太长而不能缓存的响应。而MCacheMaxStreamingBuffer指令允许缓存不含Content-Length的流式响应,直到达到其指定的值。如果达到了最大流式响应可缓冲长度,已经被缓存的内容将会被释放,缓存也不再继续。
注意:
对MCacheMaxStreamingBuffer使用一个非零值不会对响应传送到客户产生延迟。当mod_mem_cache模块将流式化的内容复制到缓冲区的同时会将数据块传送到下一个输入点以传送给客户端。
# 指定最大流式响应可缓冲长度为 64KB
MCacheMaxStreamingBuffer 65536

MCacheMinObjectSize 指令
| 说明 | 允许缓存的最小文档大小(字节) |
|---|---|
| 语法 | MCacheMinObjectSize bytes |
| 默认值 | MCacheMinObjectSize 0 |
| 作用域 | server config |
| 状态 | 扩展(E) |
| 模块 | mod_mem_cache |
MCacheMinObjectSize指令设定允许缓存的最小文档大小。
示例
MCacheMinObjectSize 10000

MCacheRemovalAlgorithm 指令
| 说明 | 定义在需要时哪个文档被移出缓存的算法 |
|---|---|
| 语法 | MCacheRemovalAlgorithm LRU|GDSF |
| 默认值 | MCacheRemovalAlgorithm GDSF |
| 作用域 | server config |
| 状态 | 扩展(E) |
| 模块 | mod_mem_cache |
MCacheRemovalAlgorithm指令定义在需要时哪个文档被移出缓存。可以有两种选择:
-
LRU(最近最少使用) -
LRU指定最长时间没有用到的对象将在必要的时候移出缓存。 -
GDSF(GreadyDual-Size) -
GDSF基于缓存命中率和文档大小计算优先级。在必要时,优先级最低的文档被移出缓存。
示例
MCacheRemovalAlgorithm GDSF
MCacheRemovalAlgorithm LRU

MCacheSize 指令
| 说明 | 缓存允许使用的最大内存量,以KB为单位 |
|---|---|
| 语法 | MCacheSize KBytes |
| 默认值 | MCacheSize 100 |
| 作用域 | server config |
| 状态 | 扩展(E) |
| 模块 | mod_mem_cache |
MCacheSize指令设定缓存允许使用的最大内存量,以KB(1024-byte)为单位。如果一个新的比缓存剩余内存量大的对象要插入缓存,那么原来缓存内的对象会被移走,直到这个新的对象能被插入缓冲区。具体哪个对象被移走,是通过MCacheRemovalAlgorithm指令指定的算法来确定的。
示例
MCacheSize 700000
注意
MCacheSize的值必须比MCacheMaxObjectSize的值大。