ngx_lua模块(二)转

本文深入探讨了如何使用ngx_lua模块与后端的Memcached和Redis进行非阻塞通信,包括Memcached的简单操作、Redis的原生响应解析、Redis Pipeline的使用以及Connection Pool在高并发场景下的优势。通过示例配置展示了lua在Nginx中访问Memcached和Redis的方法,以及实现连接池的配置。
摘要由CSDN通过智能技术生成

   在之前的文章中,已经介绍了ngx_lua的一些基本介绍,这篇文章主要着重讨论一下如何通过ngx_lua同后端的memcached、redis进行非阻塞通信。

1. Memcached

        在Nginx中访问Memcached需要模块的支持,这里选用HttpMemcModule,这个模块可以与后端的Memcached进行非阻塞的通信。我们知道官方提供了Memcached,这个模块只支持get操作,而Memc支持大部分Memcached的命令。

        Memc模块采用入口变量作为参数进行传递,所有以$memc_为前缀的变量都是Memc的入口变量。memc_pass指向后端的Memcached Server。

  配置:

[plain]   view plain copy print ?
  1. #使用HttpMemcModule  
  2. location = /memc {  
  3.     set $memc_cmd $arg_cmd;  
  4.     set $memc_key  $arg_key;  
  5.     set $memc_value $arg_val;  
  6.     set $memc_exptime $arg_exptime;  
  7.           
  8.     memc_pass '127.0.0.1:11211';  
  9. }  

        输出:

[plain]   view plain copy print ?
  1. $ curl  'http://localhost/memc?cmd=set&key=foo&val=Hello'  
  2. $ STORED  
  3. $ curl  'http://localhost/memc?cmd=get&key=foo'  
  4. $ Hello  
        这就实现了memcached的访问,下面看一下如何在lua中访问memcached。

  配置:

[plain]   view plain copy print ?
  1. #在Lua中访问Memcached  
  2. location = /memc {  
  3.     internal;   #只能内部访问  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值