Mercurial > hg > nginx-site
changeset 2990:7e83ebfac8ca
Documented the js_shared_dict_zone directive.
author | Yaroslav Zhuravlev <yar@nginx.com> |
---|---|
date | Thu, 06 Jul 2023 12:31:31 +0100 |
parents | 703d3450cd81 |
children | 1f672755959a |
files | xml/en/docs/http/ngx_http_js_module.xml xml/en/docs/stream/ngx_stream_js_module.xml xml/ru/docs/http/ngx_http_js_module.xml xml/ru/docs/stream/ngx_stream_js_module.xml |
diffstat | 4 files changed, 280 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/xml/en/docs/http/ngx_http_js_module.xml Thu Jul 06 12:31:08 2023 +0100 +++ b/xml/en/docs/http/ngx_http_js_module.xml Thu Jul 06 12:31:31 2023 +0100 @@ -9,7 +9,7 @@ <module name="Module ngx_http_js_module" link="/en/docs/http/ngx_http_js_module.html" lang="en" - rev="37"> + rev="38"> <section id="summary"> @@ -623,6 +623,75 @@ </directive> +<directive name="js_shared_dict_zone"> +<syntax> + <literal>zone</literal>=<value>name</value>:<value>size</value> + [<literal>timeout</literal>=<value>time</value>] + [<literal>type</literal>=<literal>string</literal>|<literal>number</literal>] + [<literal>evict</literal>]</syntax> +<default/> +<context>http</context> +<appeared-in>0.8.0</appeared-in> + +<para> +Sets the <value>name</value> and <value>size</value> of the shared memory zone +that keeps the key-value dictionary +shared between worker processes. +</para> + +<para> +By default the shared dictionary uses a string as a key and a value. +The optional <literal>type</literal> parameter +allows redefining the value type to number. +</para> + +<para> +The optional <literal>timeout</literal> parameter sets +the time after which all shared dictionary entries are removed from the zone. +</para> + +<para> +The optional <literal>evict</literal> parameter removes the oldest +key-value pair when the zone storage is exhausted. +</para> + +<para> +Examples: +<example> +example.conf: + # Creates a 1Mb dictionary with string values, + # removes key-value pairs after 60 seconds of inactivity: + js_shared_dict_zone zone=foo:1M timeout=60s; + + # Creates a 512Kb dictionary with string values, + # forcibly removes oldest key-value pairs when the zone is exhausted: + js_shared_dict_zone zone=bar:512K timeout=30s evict; + + # Creates a 32Kb permanent dictionary with number values: + js_shared_dict_zone zone=num:32k type=number; + +example.js: + function get(r) { + r.return(200, ngx.shared.foo.get(r.args.key)); + } + + function set(r) { + r.return(200, ngx.shared.foo.set(r.args.key, r.args.value)); + } + + function delete(r) { + r.return(200, ngx.shared.bar.delete(r.args.key)); + } + + function increment(r) { + r.return(200, ngx.shared.num.incr(r.args.key, 2)); + } +</example> +</para> + +</directive> + + <directive name="js_var"> <syntax><value>$variable</value> [<value>value</value>]</syntax> <default/>
--- a/xml/en/docs/stream/ngx_stream_js_module.xml Thu Jul 06 12:31:08 2023 +0100 +++ b/xml/en/docs/stream/ngx_stream_js_module.xml Thu Jul 06 12:31:31 2023 +0100 @@ -9,7 +9,7 @@ <module name="Module ngx_stream_js_module" link="/en/docs/stream/ngx_stream_js_module.html" lang="en" - rev="35"> + rev="36"> <section id="summary"> @@ -608,6 +608,75 @@ </directive> +<directive name="js_shared_dict_zone"> +<syntax> + <literal>zone</literal>=<value>name</value>:<value>size</value> + [<literal>timeout</literal>=<value>time</value>] + [<literal>type</literal>=<literal>string</literal>|<literal>number</literal>] + [<literal>evict</literal>]</syntax> +<default/> +<context>stream</context> +<appeared-in>0.8.0</appeared-in> + +<para> +Sets the <value>name</value> and <value>size</value> of the shared memory zone +that keeps the key-value dictionary +shared between worker processes. +</para> + +<para> +By default the shared dictionary uses a string as a key and a value. +The optional <literal>type</literal> parameter +allows redefining the value type to number. +</para> + +<para> +The optional <literal>timeout</literal> parameter sets +the time after which all shared dictionary entries are removed from the zone. +</para> + +<para> +The optional <literal>evict</literal> parameter removes the oldest +key-value pair when the zone storage is exhausted. +</para> + +<para> +Examples: +<example> +example.conf: + # Creates a 1Mb dictionary with string values, + # removes key-value pairs after 60 seconds of inactivity: + js_shared_dict_zone zone=foo:1M timeout=60s; + + # Creates a 512Kb dictionary with string values, + # forcibly removes oldest key-value pairs when the zone is exhausted: + js_shared_dict_zone zone=bar:512K timeout=30s evict; + + # Creates a 32Kb permanent dictionary with number values: + js_shared_dict_zone zone=num:32k type=number; + +example.js: + function get(r) { + r.return(200, ngx.shared.foo.get(r.args.key)); + } + + function set(r) { + r.return(200, ngx.shared.foo.set(r.args.key, r.args.value)); + } + + function delete(r) { + r.return(200, ngx.shared.bar.delete(r.args.key)); + } + + function increment(r) { + r.return(200, ngx.shared.num.incr(r.args.key, 2)); + } +</example> +</para> + +</directive> + + <directive name="js_var"> <syntax><value>$variable</value> [<value>value</value>]</syntax> <default/>
--- a/xml/ru/docs/http/ngx_http_js_module.xml Thu Jul 06 12:31:08 2023 +0100 +++ b/xml/ru/docs/http/ngx_http_js_module.xml Thu Jul 06 12:31:31 2023 +0100 @@ -9,7 +9,7 @@ <module name="Модуль ngx_http_js_module" link="/ru/docs/http/ngx_http_js_module.html" lang="ru" - rev="37"> + rev="38"> <section id="summary"> @@ -624,6 +624,75 @@ </directive> +<directive name="js_shared_dict_zone"> +<syntax> + <literal>zone</literal>=<value>имя</value>:<value>размер</value> + [<literal>timeout</literal>=<value>время</value>] + [<literal>type</literal>=<literal>строка</literal>|<literal>число</literal>] + [<literal>evict</literal>]</syntax> +<default/> +<context>http</context> +<appeared-in>0.8.0</appeared-in> + +<para> +Задаёт <value>имя</value> и <value>размер</value> зоны разделяемой памяти, +в которой хранится словарь ключей и значений, +разделяемый между рабочими процессами. +</para> + +<para> +По умолчанию в качестве ключа и значения используется строка. +Необязательный параметр <literal>type</literal> +позволяет изменить тип значения на число. +</para> + +<para> +Необязательный параметр <literal>timeout</literal> задаёт время, +по завершении которого все записи в словаре удаляются из зоны. +</para> + +<para> +Необязательный параметр <literal>evict</literal> удаляет самую старую +пару ключ-значение при переполнении зоны. +</para> + +<para> +Пример: +<example> +example.conf: + # Создаётся словарь размером 1Мб со строковыми значениями, + # пары ключ-значение удаляются при отсутствии активности в течение 60 секунд: + js_shared_dict_zone zone=foo:1M timeout=60s; + + # Создаётся словарь размером 512Кб со строковыми значениями, + # удаляется самая старая пара ключ-значение при переполнении зоны: + js_shared_dict_zone zone=bar:512K timeout=30s evict; + + # Создаётся постоянный словарь размером 32Кб с числовыми значениями: + js_shared_dict_zone zone=num:32k type=number; + +example.js: + function get(r) { + r.return(200, ngx.shared.foo.get(r.args.key)); + } + + function set(r) { + r.return(200, ngx.shared.foo.set(r.args.key, r.args.value)); + } + + function delete(r) { + r.return(200, ngx.shared.bar.delete(r.args.key)); + } + + function increment(r) { + r.return(200, ngx.shared.num.incr(r.args.key, 2)); + } +</example> +</para> + +</directive> + + <directive name="js_var"> <syntax><value>$переменная</value> [<value>значение</value>]</syntax> <default/>
--- a/xml/ru/docs/stream/ngx_stream_js_module.xml Thu Jul 06 12:31:08 2023 +0100 +++ b/xml/ru/docs/stream/ngx_stream_js_module.xml Thu Jul 06 12:31:31 2023 +0100 @@ -9,7 +9,7 @@ <module name="Модуль ngx_stream_js_module" link="/ru/docs/stream/ngx_stream_js_module.html" lang="ru" - rev="35"> + rev="36"> <section id="summary"> @@ -607,6 +607,75 @@ </directive> +<directive name="js_shared_dict_zone"> +<syntax> + <literal>zone</literal>=<value>имя</value>:<value>размер</value> + [<literal>timeout</literal>=<value>время</value>] + [<literal>type</literal>=<literal>строка</literal>|<literal>число</literal>] + [<literal>evict</literal>]</syntax> +<default/> +<context>stream</context> +<appeared-in>0.8.0</appeared-in> + +<para> +Задаёт <value>имя</value> и <value>размер</value> зоны разделяемой памяти, +в которой хранится словарь ключей и значений, +разделяемый между рабочими процессами. +</para> + +<para> +По умолчанию в качестве ключа и значения используется строка. +Необязательный параметр <literal>type</literal> +позволяет изменить тип значения на число. +</para> + +<para> +Необязательный параметр <literal>timeout</literal> задаёт время, +по завершении которого все записи в словаре удаляются из зоны. +</para> + +<para> +Необязательный параметр <literal>evict</literal> удаляет самую старую +пару ключ-значение при переполнении зоны. +</para> + +<para> +Пример: +<example> +example.conf: + # Создаётся словарь размером 1Мб со строковыми значениями, + # пары ключ-значение удаляются при отсутствии активности в течение 60 секунд: + js_shared_dict_zone zone=foo:1M timeout=60s; + + # Создаётся словарь размером 512Кб со строковыми значениями, + # удаляется самая старая пара ключ-значение при переполнении зоны: + js_shared_dict_zone zone=bar:512K timeout=30s evict; + + # Создаётся постоянный словарь размером 32Кб с числовыми значениями: + js_shared_dict_zone zone=num:32k type=number; + +example.js: + function get(r) { + r.return(200, ngx.shared.foo.get(r.args.key)); + } + + function set(r) { + r.return(200, ngx.shared.foo.set(r.args.key, r.args.value)); + } + + function delete(r) { + r.return(200, ngx.shared.bar.delete(r.args.key)); + } + + function increment(r) { + r.return(200, ngx.shared.num.incr(r.args.key, 2)); + } +</example> +</para> + +</directive> + + <directive name="js_var"> <syntax><value>$переменная</value> [<value>значение</value>]</syntax> <default/>