OpenResty+Lua+redis+mysql实现高性能高可用限流缓存
生活随笔
收集整理的這篇文章主要介紹了
OpenResty+Lua+redis+mysql实现高性能高可用限流缓存
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
OpenResty(又稱:ngx_openresty) 是一個基于 NGINX 的可伸縮的 Web 平臺.并發性能可在10k-1000k
OpenResty安裝
1.添加倉庫執行命令
?
yum install yum-utils yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo2.執行安裝
yum install openresty3.安裝成功后 會在默認的目錄如下:
/usr/local/openresty默認已經安裝好了nginx,在目錄:/usr/local/openresty/nginx 下。
修改/usr/local/openresty/nginx/conf/nginx.conf ,將配置文件使用的根設置為root,目的就是將來要使用lua腳本的時候 ,直接可以加載在root下的lua腳本。
#user nobody; 配置文件第一行原來為這樣, 現改為下面的配置 user root root;?
?
?
緩存預熱和二級緩存查詢
?
在/root/lua目錄下創建ad_load.lua ,實現連接mysql 查詢數據 并存儲到redis中。
ngx.header.content_type="application/json;charset=utf8" local cjson = require("cjson") local mysql = require("resty.mysql") local uri_args = ngx.req.get_uri_args() local position = uri_args["position"]local db = mysql:new() db:set_timeout(1000) local props = { host = "192.168.41.188", port = 3306, database = "changgou_business", user = "root", password = "123456" }local res = db:connect(props) local select_sql = "select url,image from tb_ad where status ='1' and position='"..position.."' and start_time<= NOW() AND end_time>= NOW()" res = db:query(select_sql) db:close() local redis = require("resty.redis") local red = redis:new() red:set_timeout(2000)local ip ="192.168.41.188" local port = 6379 red:connect(ip,port)red:set("ad_"..position,cjson.encode(res)) red:close()ngx.say("{flag:true}")修改/usr/local/openresty/nginx/conf/nginx.conf文件:
./nginx -s reload
?
?
總結
以上是生活随笔為你收集整理的OpenResty+Lua+redis+mysql实现高性能高可用限流缓存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 未来教育计算机二级预测c,二级C语言(附
- 下一篇: 反斜杠转义mysql java_mysq