Syntax: | uwsgi_cache_path
|
---|---|
Default: | — |
Context: | http |
Sets the path and other parameters of a cache. Cache data are stored in files. The file name in a cache is a result of applying the MD5 function to the cache key. The levels
parameter defines hierarchy levels of a cache: from 1 to 3, each level accepts values 1 or 2. For example, in the following configuration
uwsgi_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;
file names in a cache will look like this:
/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c
A cached response is first written to a temporary file, and then the file is renamed. Starting from version 0.8.9, temporary files and the cache can be put on different file systems. However, be aware that in this case a file is copied across two file systems instead of the cheap renaming operation. It is thus recommended that for any given location both cache and a directory holding temporary files are put on the same file system. A directory for temporary files is set based on the use_temp_path
parameter (1.7.10). If this parameter is omitted or set to the value on
, the directory set by the uwsgi_temp_path directive for the given location will be used. If the value is set to off
, temporary files will be put directly in the cache directory.
In addition, all active keys and information about data are stored in a shared memory zone, whose name
and size
are configured by the keys_zone
parameter. One megabyte zone can store about 8 thousand keys.
Cached data that are not accessed during the time specified by the inactive
parameter get removed from the cache regardless of their freshness. By default, inactive
is set to 10 minutes.
The special “cache manager” process monitors the maximum cache size set by the max_size
parameter. When this size is exceeded, it removes the least recently used data. The data is removed in iterations configured by manager_files
, manager_threshold
, and manager_sleep
parameters (1.11.5). During one iteration no more than manager_files
items are deleted (by default, 100). The duration of one iteration is limited by the manager_threshold
parameter (by default, 200 milliseconds). Between iterations, a pause configured by the manager_sleep
parameter (by default, 50 milliseconds) is made.
A minute after the start the special “cache loader” process is activated. It loads information about previously cached data stored on file system into a cache zone. The loading is also done in iterations. During one iteration no more than loader_files
items are loaded (by default, 100). Besides, the duration of one iteration is limited by the loader_threshold
parameter (by default, 200 milliseconds). Between iterations, a pause configured by the loader_sleep
parameter (by default, 50 milliseconds) is made.
Additionally, the following parameters are available as part of our commercial subscription:
-
purger
=on
|off
- Instructs whether cache entries that match a wildcard key will be removed from the disk by the cache purger (1.7.12). Setting the parameter to
on
(default isoff
) will activate the “cache purger” process that permanently iterates through all cache entries and deletes the entries that match the wildcard key. -
purger_files
=number
- Sets the number of items that will be scanned during one iteration (1.7.12). By default,
purger_files
is set to 10. -
purger_threshold
=number
- Sets the duration of one iteration (1.7.12). By default,
purger_threshold
is set to 50 milliseconds. -
purger_sleep
=number
- Sets a pause between iterations (1.7.12). By default,
purger_sleep
is set to 50 milliseconds.
Please login to continue.