Keyval#
O módulo permite o uso de variáveis com valores de pares "chave-valor",
que são armazenados em memória compartilhada ou em um armazenamento Redis. Para instalar o módulo, use um dos seguintes pacotes: Angie: Angie PRO: Para trabalhar com o módulo, ele deve ser carregado no contexto de A adição e modificação de entradas na zona de memória compartilhada 'one' é feita
atribuindo um valor à variável Vamos definir alguns valores usando requisições: Vamos verificar: Vamos modificar a configuração para armazenar pares "chave-valor" em um armazenamento Redis: Vamos adicionar um par "chave-valor" ao armazenamento Redis via requisição: O mesmo pode ser feito usando o próprio Redis: Vamos verificar: Uma descrição completa das diretivas e o código-fonte estão disponíveis em:
kjdev/nginx-keyval.Instalação#
angie-module-keyval
angie-pro-module-keyval
Carregando o Módulo#
main{}
:load_module modules/ngx_http_keyval_module.so;
Exemplo de Configuração#
keyval_zone zone=one:32k;
keyval $arg_key $value zone=one;
server {
listen 80;
server_name localhost;
location /get {
return 200 "key '$arg_key' has value = '$value'\\n";
}
location /set {
set $value $arg_value;
return 200 "'$arg_key' key added with '$arg_value' value\\n";
}
}
$value
. O valor da chave
é armazenado na variável $arg_key
. Nesta configuração, esta é a
diretiva set
:set $value $arg_value;
Demonstração#
$ curl "localhost/set/?key=one&value=TextForKeyOne"
'one' key added with 'TextForKeyOne' value
$ curl "localhost/set/?key=two&value=TextForKeyTwo"
'two' key added with 'TextForKeyTwo' value
$ curl "localhost/get/?key=one"
key 'one' has value = 'TextForKeyOne'
$ curl "localhost/get/?key=two"
key 'two' has value = 'TextForKeyTwo'
Usando Redis#
keyval_zone_redis zone=oneredis;
keyval $arg_key $value zone=oneredis;
server {
listen 80;
server_name localhost;
location /get {
return 200 "key '$arg_key' has value = '$value'\\n";
}
location /set {
set $value $arg_value;
return 200 "'$arg_key' key added with '$arg_value' value\\n";
}
}
$ curl "localhost/set/?key=one&value=TextForKeyOne"
'one' key added with 'TextForKeyOne' value
$ redis-cli
127.0.0.1:6379> set oneredis:two 'text for key two'
OK
127.0.0.1:6379>
$ redis-cli --scan
"oneredis:one"
"oneredis:two"
$ curl "localhost/get/?key=one"
key 'one' has value = 'TextForKeyOne'
$ curl "localhost/get/?key=two"
key 'two' has value = 'text for key two'
Informações Adicionais#