Apache HTTP Server Version 2.2
Apache Module mod_mem_cache
Description: | Content cache keyed to URIs |
---|---|
Status: | Extension |
Module Identifier: | mem_cache_module |
Source File: | mod_mem_cache.c |
Summary
This module requires the service of mod_cache
. It acts as a support module for mod_cache
and provides a memory based storage manager.
mod_mem_cache
can be configured to operate in two
modes: caching open file descriptors or caching objects in heap storage.
mod_mem_cache
is most useful when used to cache locally
generated content or to cache backend server content for mod_proxy
configured for ProxyPass
(aka reverse proxy).
Content is stored in and retrieved from the cache using URI based keys. Content with access protection is not cached.
Note
In most casesmod_disk_cache
should be the preferred choice. This is explained further in the Caching Guide. In particular,
this module's cache is per-process, which can be partially
mitigated by configuring threaded MPMs to use fewer child processes
via configuration of larger values for ThreadsPerChild
. This module's cache is
also limited to storing a single variant (see HTTP Vary: header) of each
resource in the cache.See also
MCacheMaxObjectCount Directive
Description: | The maximum number of objects allowed to be placed in the cache |
---|---|
Syntax: | MCacheMaxObjectCount value |
Default: | MCacheMaxObjectCount 1009 |
Context: | server config |
Status: | Extension |
Module: | mod_mem_cache |
The MCacheMaxObjectCount
directive sets the
maximum number of objects to be cached. The value is used to create the
open hash table. If a new object needs to be inserted in the cache and
the maximum number of objects has been reached, an object will be
removed to allow the new object to be cached. The object to be removed
is selected using the algorithm specified by MCacheRemovalAlgorithm
.
Example
MCacheMaxObjectCount 13001
MCacheMaxObjectSize Directive
Description: | The maximum size (in bytes) of a document allowed in the cache |
---|---|
Syntax: | MCacheMaxObjectSize bytes |
Default: | MCacheMaxObjectSize 10000 |
Context: | server config |
Status: | Extension |
Module: | mod_mem_cache |
The MCacheMaxObjectSize
directive sets the
maximum allowable size, in bytes, of a document for it to be considered
cacheable.
Example
MCacheMaxObjectSize 6400000
Note
The value of MCacheMaxObjectSize
must be
greater than the value specified by the MCacheMinObjectSize
directive.
MCacheMaxStreamingBuffer Directive
Description: | Maximum amount of a streamed response to buffer in memory before declaring the response uncacheable |
---|---|
Syntax: | MCacheMaxStreamingBuffer size_in_bytes |
Default: | MCacheMaxStreamingBuffer the smaller of 100000 or MCacheMaxObjectSize |
Context: | server config |
Status: | Extension |
Module: | mod_mem_cache |
The MCacheMaxStreamingBuffer
directive
specifies the maximum number of bytes of a streamed response to
buffer before deciding that the response is too big to cache.
A streamed response is one in which the entire content is not
immediately available and in which the Content-Length
may not be known. Sources of streaming responses include proxied
responses and the output of CGI scripts. By default, a streamed
response will not be cached unless it has a
Content-Length
header. The reason for this is to
avoid using a large amount of memory to buffer a partial response
that might end up being too large to fit in the cache.
The MCacheMaxStreamingBuffer
directive allows
buffering of streamed responses that don't contain a
Content-Length
up to the specified maximum amount of
space. If the maximum buffer space is reached, the buffered
content is discarded and the attempt to cache is abandoned.
Note:
Using a nonzero value for MCacheMaxStreamingBuffer
will not delay the transmission of the response to the client.
As soon as mod_mem_cache
copies a block of streamed
content into a buffer, it sends the block on to the next output
filter for delivery to the client.
# Enable caching of streamed responses up to 64KB:
MCacheMaxStreamingBuffer 65536
MCacheMinObjectSize Directive
Description: | The minimum size (in bytes) of a document to be allowed in the cache |
---|---|
Syntax: | MCacheMinObjectSize bytes |
Default: | MCacheMinObjectSize 1 |
Context: | server config |
Status: | Extension |
Module: | mod_mem_cache |
The MCacheMinObjectSize
directive sets the
minimum size in bytes of a document for it to be considered
cacheable.
Example
MCacheMinObjectSize 10000
MCacheRemovalAlgorithm Directive
Description: | The algorithm used to select documents for removal from the cache |
---|---|
Syntax: | MCacheRemovalAlgorithm LRU|GDSF |
Default: | MCacheRemovalAlgorithm GDSF |
Context: | server config |
Status: | Extension |
Module: | mod_mem_cache |
The MCacheRemovalAlgorithm
directive specifies
the algorithm used to select documents for removal from the cache.
Two choices are available:
LRU
(Least Recently Used)LRU
removes the documents that have not been accessed for the longest time.GDSF
(GreadyDual-Size)GDSF
assigns a priority to cached documents based on the cost of a cache miss and the size of the document. Documents with the lowest priority are removed first.
Example
MCacheRemovalAlgorithm GDSF
MCacheRemovalAlgorithm LRU
MCacheSize Directive
Description: | The maximum amount of memory used by the cache in KBytes |
---|---|
Syntax: | MCacheSize KBytes |
Default: | MCacheSize 100 |
Context: | server config |
Status: | Extension |
Module: | mod_mem_cache |
The MCacheSize
directive sets the maximum
amount of memory to be used by the cache, in KBytes (1024-byte units).
If a new object needs to be inserted in the cache and the size of the
object is greater than the remaining memory, objects will be removed
until the new object can be cached. The object to be removed is
selected using the algorithm specified by MCacheRemovalAlgorithm
.
Example
MCacheSize 700000
Note
The MCacheSize
value must be greater than
the value specified by the MCacheMaxObjectSize
directive.