Apache模块 mod_mem_cache

说明 基于内存的缓冲管理器
状态 扩展(E)
模块名 mem_cache_module
源文件 mod_mem_cache.c

概述

本模块需要mod_cache提供的服务。它作为mod_cache的辅助模块工作,以提供基于内存的存储管理。mod_mem_cache模块可以按两种方法来配置:缓存打开的文件描述符,或缓存堆中的对象。mod_mem_cache大多数情况下用于缓存本地生成的内容,或是在mod_proxy配置成ProxyPass方式(也就是<dfn class="calibre27">反向代理</dfn>)时后端服务器产生的内容。

被缓存的内容通过基于URI的键被保存到缓冲区或从缓冲区取出。带访问保护的内容不会被缓存。

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&#124;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的值大。