mod_mem_cache

优质
小牛编辑
130浏览
2023-12-01
说明基于内存的缓冲管理器
状态扩展(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的值大。