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; } } }