Nginx+Lua系列:非阻塞Mysql与Redis客户端

 

ngx_redis2

  • https://github.com/openresty/redis2-nginx-module
  • redis2-nginx-module是一个openresty(1.9.15.1)自带的模块。它能够把请求转发给upstream(redis2_pass)。注意它和lua-resty-redis不同,lua-resty-redis是一个lua语言版的redis API,使用socket(lua sock)和redis通信。而redis2-nginx-module是把请求转发给别的upstream。
  • 实现Nginx中同步非阻塞的方式访问Redis

 

ngx_drizzle

介绍:

  • https://github.com/openresty/drizzle-nginx-module
  • 实现Nginx中同步非阻塞的方式访问Mysql
  • 具备长连接、进程级可控大小的连接池和负载均衡的功能
  • 返回数据可通过ngx_rds_json/csv等模块转换为json/csv格式
  • 在nginx中快速使用示例:
http {
...
upstream dbgroup {
 # 连接句柄
 drizzle_server host1:3306 dbname=test password=pass user=alice protocol=mysql;
 #连接池
 drizzle_keepalive max=200 overflow=reject;
}
...
server{
location ~ '^/cat/(.*)' {
       set $name $1;
       set_quote_sql_str $quoted_name $name;
       drizzle_query "select *
           from cats
           where name=$quoted_name";
       drizzle_pass my_mysql_backend;
       rds_json on;
   }
}
}

 

posted @ 2020-08-27 14:56  -零  阅读(438)  评论(0编辑  收藏  举报