当前位置: 首页 > news >正文

金华做网站的公司3d网站建设

金华做网站的公司,3d网站建设,天津做网页设计的公司,wordpress个性用户文章目录 前言6.4 Lua语法入门6.4.1 初识Lua6.4.2 Hello World6.4.3 变量6.4.3.1 Lua的数据类型6.4.3.2 声明变量 6.4.4 循环6.4.5 函数6.4.6 条件控制 6.5 实现多级缓存6.5.1 安装和启动OpenResty6.5.2 实现ajax请求反向代理至OpenResty集群6.5.2.1 反向代理配置6.5.2.2 OpenR… 文章目录 前言6.4 Lua语法入门6.4.1 初识Lua6.4.2 Hello World6.4.3 变量6.4.3.1 Lua的数据类型6.4.3.2 声明变量 6.4.4 循环6.4.5 函数6.4.6 条件控制 6.5 实现多级缓存6.5.1 安装和启动OpenResty6.5.2 实现ajax请求反向代理至OpenResty集群6.5.2.1 反向代理配置6.5.2.2 OpenResty集群监听请求 前言 Redis多级缓存系列文章 Redis从入门到精通(十六)多级缓存(一)Caffeine、JVM进程缓存 6.4 Lua语法入门 要进行业务Nginx编程就需要用到Lua语言。Lua语言的官网地址是https://www.lua.org/ 6.4.1 初识Lua 进入Lua官网可以看到官方对Lua语言的定义 Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description. Lua是一种强大、高效、轻量级、可嵌入的脚本语言。它支持过程式编程、面向对象编程、函数式编程、数据驱动编程和数据描述。 Lua是一种轻量小巧的脚本语言用标准C语言编写并以源代码形式开放 其设计目的是为了嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。 Lua经常嵌入到C语言开发的程序中例如游戏开发、游戏插件等。Nginx本身也是C语言开发因此也允许基于Lua做拓展。 6.4.2 Hello World CentOS7系统默认已经安装了Lua语言环境可以直接运行Lua代码。 在虚拟机任意目录下新建一个hello.lua文件内容如下 print(Hello World)执行lua hello.lua命令 6.4.3 变量 6.4.3.1 Lua的数据类型 Lua支持的常见数据类型包括 Lua提供了一个type()函数来判断一个变量的数据类型 6.4.3.2 声明变量 Lua声明变量时无需指定数据类型而是用local来声明变量为局部变量 -- 声明字符串可以用单引号或双引号 local str hello -- 字符串拼接使用 .. local str2 hello .. hello2 -- 声明数字 local num 21 -- 声明布尔类型 local falg trueLua的table类型类似于Java中的Map -- 声明table类似Java中的Map local map {name Jack, age 21} -- 通过key访问table print(map[name]) print(map.age)Lua的table类型也可以作为数组来使用只是此时的key为数组的角标且从1开始 -- 声明数组key为角标 local arr {java, python, lua} -- 访问数组从角标1开始 print(arr[1])执行以上程序结果为 Jack 21 java6.4.4 循环 对于table可以利用for循环来遍历 遍历数组 local arr {java, python, lua} -- for循环遍历数组 for index, value in ipairs(arr) doprint(index, value) end执行以上程序结果为 1 java 2 python 3 lua遍历普通table local map {name Jack, age 21} -- for循环遍历table for key, value in pairs(map) doprint(key, value) end执行以上程序结果为 name Jack age 216.4.5 函数 定义函数的语法 function 函数名(argument1, argument2..., argumentn)-- 函数体return 返回值 end例如定义一个函数用于打印数组 -- 定义函数打印数组 function printArr(arr)for index, value in ipairs(arr) doprint(index, value)end end6.4.6 条件控制 条件控制的语法 if(布尔表达式) then--语句块 else--语句块 end与Java不同的是这里的布尔表达式是基于英文单词的包括and逻辑与、or逻辑或、not逻辑非。 例如自定义一个函数可以打印数组当参数为nil时打印错误信息 function printArr2(arr)if not arrthenprint(数组为空)elsefor index, value in ipairs(arr) doprint(index, value)endend end6.5 实现多级缓存 OpenResty是一个基于Nginx的高性能Web平台用于方便地搭建能够处理超高并发、扩展性极高的动态Web应用、Web服务和动态网关。 其官网地址为https://openresty.org/cn/ OpenResty具备下列特点 具备Nginx的完整功能基于Lua语言进行扩展集成了大量精良的 Lua 库、第三方模块允许使用Lua自定义业务逻辑、自定义库 6.5.1 安装和启动OpenResty 1安装OpenResty依赖开发库 yum install -y pcre-devel openssl-devel gcc --skip-broken2安装OpenResty仓库 安装OpenResty仓库便于未来安装或更新软件包通过yum check-update命令 yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo如果提示命令不存在则先运行yum install -y yum-utils先安装工具在重复运行上面的命令。 3安装OpenResty yum install -y openresty4安装opm工具 opm是OpenResty的一个管理工具用于安装第三方的Lua模块 yum install -y openresty-opm5OpenResty目录结构 以上命令执行完毕后OpenResty安装完成其默认的目录是/usr/local/openresty。 可以看到OpenResty安装目录中有一个nginx文件夹因此可以说OpenResty就是在Nginx的基础上继承了一些Lua模块。 6配置Nginx环境变量 修改配置文件/etc/profile在最下面添加以下内容 export NGINX_HOME/usr/local/openresty/nginx export PATH${NGINX_HOME}/sbin:$PATH然后执行source /etc/profile命令让配置生效。 7启动和运行OpenResty 修改Nginx配置文件由于Nginx默认配置文件注释太多影响编辑所以可以将注释部分删掉只保留需要的部分 # /usr/local/openresty/nginx/conf/nginx.conf# user nobody; worker_processes 1; error_log logs/error.log;events {worker_connections 1024; }http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 8082;server_name localhost;location / {root html;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location /50x.html {root html;}} }OpenResty底层是基于Nginx的它内部nginx目录和普通的Nginx的目录是一致的所以启动方式也基本一致 # 启动nginx已配置环境变量 nginx # 重新加载配置 nginx -s reload # 停止nginx nginx -s stop启动后在浏览器访问http://192.168.146.128:8082/出现以下页面说明OpenResty安装成功。 8OpenResty集群模拟 可以在Nginx配置文件的http块下增加一个server配置不同的端口以模拟OpenResty集群 # /usr/local/openresty/nginx/conf/nginx.confhttp {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 8082;server_name localhost;location / {root html;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location /50x.html {root html;}}server {listen 8083;server_name localhost;location / {root html;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location /50x.html {root html;}} }执行nginx -s reload命令重启服务此时8082端口和8083端口均可访问OpenResty的主页。 6.5.2 实现ajax请求反向代理至OpenResty集群 下面来梳理一下多级缓存的架构如图 如上图所示在Windows上部署的Nginx用来做反向代理服务将前端的查询商品信息的ajax请求代理到部署在虚拟机上的OpenResty集群而OpenResty集群用来编写业务按照Nginx本地缓存、Redis、Tomcat的顺序依次查询。 6.5.2.1 反向代理配置 修改Windows的反向代理Nginx服务的配置文件将前端的ajax请求反向代理到OpenResty集群如图 6.5.2.2 OpenResty集群监听请求 OpenResty的很多功能都依赖于其目录下的Lua库因此需要在nginx.conf中指定依赖库的目录并导入依赖 1添加对OpenResty的Lua模块的加载 修改/usr/local/openresty/nginx/conf/nginx.conf文件在其中的http块中添加下面代码 #lua 模块 lua_package_path /usr/local/openresty/lualib/?.lua;;; #c模块 lua_package_cpath /usr/local/openresty/lualib/?.so;;;2监听/api/item路径 修改/usr/local/openresty/nginx/conf/nginx.conf文件在其中的server块中添加对/api/item路径的监听 location /api/item {# 默认的响应类型default_type application/json;# 响应结果由lua/item.lua文件来决定content_by_lua_file lua/item.lua; }3编写item.lua文件 在/usr/local/openresty/nginx目录下创建文件夹lua并在lua文件夹内创建新文件item.lua 编写item.lua文件暂时先返回假数据 -- /usr/local/openresty/nginx/lua/item.luangx.say({id:1,name:SALSA AIR,title:(集群中的)RIMOWA 21寸托运箱拉杆箱 SALSA AIR系列果绿色 820.70.36.4,price:17900,image:https://m.360buyimg.com/mobilecms/s720x720_jfs/t6934/364/1195375010/84676/e9f2c55f/597ece38N0ddcbc77.jpg!q70.jpg.webp,category:拉杆箱,brand:RIMOWA,spec:,status:1,createTime:2019-04-30T16:00:00.00000:00,updateTime:2019-04-30T16:00:00.00000:00,stock:2999,sold:31290})4重新加载配置刷新页面 完整的nginx.conf配置文件内容如下 # /usr/local/openresty/nginx/conf/nginx.conf # user nobody; worker_processes 1; error_log logs/error.log;events {worker_connections 1024; }http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 8082;server_name localhost;location / {root html;index index.html index.htm;}location /api/item {# 默认的响应类型default_type application/json;# 响应结果由lua/item.lua文件来决定content_by_lua_file lua/item.lua;}error_page 500 502 503 504 /50x.html;location /50x.html {root html;}}server {listen 8083;server_name localhost;location / {root html;index index.html index.htm;}location /api/item {# 默认的响应类型default_type application/json;# 响应结果由lua/item.lua文件来决定content_by_lua_file lua/item.lua;}error_page 500 502 503 504 /50x.html;location /50x.html {root html;}}# lua模块lua_package_path /usr/local/openresty/lualib/?.lua;;;# c模块 lua_package_cpath /usr/local/openresty/lualib/?.so;;; }执行以下命令重新加载配置文件 nginx -s reload浏览器刷新页面 可见页面确实从OpenResty集群拿到了数据。 … 本节完下一节继续进行多级缓存的实现。 本节所涉及的代码和资源可从git仓库下载https://gitee.com/weidag/redis_learning.git 更多内容请查阅分类专栏Redis从入门到精通 感兴趣的读者还可以查阅我的另外几个专栏 SpringBoot源码解读与原理分析(已完结)MyBatis3源码深度解析(已完结)再探Java为面试赋能(持续更新中…)
http://www.hkea.cn/news/14388713/

相关文章:

  • 网站访问不了的原因网站设计模板网站
  • 排名网站却搜不到wordpress 白屏
  • 沈阳城市建设管理学校网站深圳市seo网站设计
  • 上海珍岛网站建设wordpress在lnmp部署
  • 服装设计网站模板下载西安霸屏推广
  • 网站可以做推广吗ftp网站怎么建
  • 团购网站单页模板苏宁易购网站建设
  • 延庆网站制作wordpress调用不同头部文件
  • 抽奖网站建设knowhow汉化wordpress
  • 百度如何才能搜到你的网站凡客诚品官方网站首页
  • 外贸网站建设及推广深圳营销型网站建设公司哪家好
  • 怎么建单位的网站做课件最好的素材网站
  • 连云港中信建设证券网站福州最好的网站建设公司
  • 住房建设部官方网站命令环球影城排队太热了
  • wordpress如何启用全站sslwordpress如何添加模板文件
  • 云主机添加网站云主机云服务器
  • 郑州制作网站电话133快速网站开发软件
  • 深圳服务网站入口廉江网站开发公司
  • 多语言网站实现科技部
  • 网站设计论文答辩问题及答案app开发与网站建设难度
  • 西安做网站朋朋wordpress 页面固定
  • 婚庆网站建设论文seo待遇
  • 做网站点击挣钱不?纯静态网站开发
  • 隆昌网站建设注册城乡规划师含金量到底有多高
  • 苏州集团网站设计公司旅游公网站如何做
  • 移动端网站如何开发手机网站引导页js
  • 东莞住房与城乡建设网站今天最新消息
  • 企业网站建设源码二次元动漫网站设计方案
  • emlog怎么做视频网站网站开发软件学习
  • 学校文化建设网站广告设计专业哪个大学最好