Redis2#
Модуль Для работы с модулем необходимо загрузить его в контексте Предупреждение Важно! В отличие от директивы Примеры работы с модулем. Здесь Значение Выполнение произвольных команд Redis: Подробная документация и исходный код доступны по ссылке:
openresty/redis2-nginx-module.redis2
предоставляет возможность взаимодействия с сервером Redis
2.x. Он реализует полный унифицированный протокол Redis 2.0, включая поддержку
конвейерной обработки Redis.Загрузка модуля#
main{}
.
В примере ниже также используются директивы модуля set-misc:load_module modules/ndk_http_module.so;
load_module modules/ngx_http_set_misc_module.so;
load_module modules/ngx_http_redis2_module.so;
Пример конфигурации#
upstream redis_upstream {
server 127.0.0.1:6379;
}
server {
listen 80;
server_name localhost;
# Установить значение ключа
location /foo {
set $value 'first';
redis2_query set one $value;
redis2_pass redis_upstream;
}
# Получить значение по ключу
location /bar {
redis2_query get one;
redis2_pass redis_upstream;
}
# Установить значение ключа из параметров запроса
location /set {
set_unescape_uri $key $arg_key;
set_unescape_uri $val $arg_val;
redis2_query set $key $val;
redis2_pass 127.0.0.1:6379;
}
# Получить значение по ключу из параметров запроса
location /get {
set_unescape_uri $key $arg_key;
redis2_query get $key;
redis2_pass 127.0.0.1:6379;
}
# Выполнение нескольких конвейерных команд
location /pipeline {
set $value 'first';
redis2_query set one $value;
redis2_query get one;
redis2_query set one 'first first';
redis2_query get one;
redis2_pass 127.0.0.1:6379;
}
# Выполнение произвольной команды, переданной в параметре запроса
location /cmd {
set_unescape_uri $cmd $arg_command;
redis2_raw_query "$cmd\r\n";
redis2_pass 127.0.0.1:6379;
}
}
proxy_pass
в Angie, в директиве redis2_pass
использование переменных в параметре недопустимо.Демонстрация выполнения запросов#
$ curl localhost/foo
+OK
$ curl localhost/bar
$5
first
$5
— длина значения (5 байт), а first
— само значение.$ curl 'localhost/set/?key=two&val=second%20value'
+OK
$ curl 'localhost/get/?key=two'
$12
second value
$ curl 'localhost/get/?key=three'
$-1
$-1
означает, что ключ three
отсутствует.$ curl localhost/pipeline
+OK
$5
first
+OK
$11
first first
$ curl 'localhost/cmd/?command=set%20three%20"third%20value"'
+OK
$ curl 'localhost/cmd/?command=get%20three'
$11
third value
Дополнительная информация#