OpenResty
文章平均质量分 90
leadersnowy
向新的高度迈进
展开
-
OpenResty学习开端
从接触到nginx+lua到现在大概有2-3个月的时间左右了吧,中间也是断断续续地看点东西,并没有系统学习过。但是已经被其魅力所深深吸引,感觉到可以通过它实现心里的想法是一件很开心的事情。最开始也是看一些技术博客,从章大大的新浪博客对nginx的讲解开始http://blog.sina.com.cn/u/1834459124,一点一点学习一些东西。 现在项目基本进入维护阶段,所以有时间就想认原创 2016-05-30 11:02:40 · 639 阅读 · 0 评论 -
OpenResty学习笔记(四) string库
长时间的出差导致都没有时间去学习了,不得不说学习这个事情是需要一个安静跟稳定的环境的。 现在我们继续我们的学习过程,来看一下lua的string库。 首先声明一下Lua 字符串内部用来标识各个组成字节的下标是从 1 开始的,这不同于很多编程语言。string.sub(str, 3, 7) 直接表示从第三个字符开始到第七个字符(含)为止的子串。 接下来我们学习一下库函数:1.string.byt原创 2016-06-23 11:32:36 · 1272 阅读 · 0 评论 -
OpenResty学习笔记(九) 环境搭建
前一阵子学习了lua的基本知识,后来在学习高阶的时候感觉太抽象,效果不佳,既然学完了基础知识那就应该开始实践才对,话不多说,虚拟机装起,环境建起。 之前在windows环境上搭了一套Openresty的环境,不过总感觉用着不舒服,测试感觉也不是很方便,没有Linux版本的用着舒服。所以这里提供一整套的Linux下环境的搭建过程,有需要的朋友请拿去用。环境说明虚拟机用的是Oracle Vitua原创 2016-07-07 17:27:20 · 2197 阅读 · 0 评论 -
(转)openResty缓存
缓存缓存的原则缓存是一个大型系统中非常重要的一个组成部分。在硬件层面,大部分的计算机硬件都会用缓存来提高速度,比如CPU会有多级缓存、RAID卡也有读写缓存。在软件层面,我们用的数据库就是一个缓存设计非常好的例子,在SQL语句的优化、索引设计、磁盘读写的各个地方,都有缓存,建议大家在设计自己的缓存之前,先去了解下MySQL里面的各种缓存机制,感兴趣的可以去看下High Permance MySQL这转载 2016-07-13 15:33:39 · 4808 阅读 · 0 评论 -
OpenResty学习笔记(十) 登录验证
上一篇中我们已经可能搭起一个完整的nginx的环境,那现在我们就可以做点什么了吧,先从一个最开始的事做起:登录。 一般来说登录这个动作是基本上所有的系统都需要的,就拿这个练手吧,先顺一下流程。web端也不需要什么页面了,直接发一个http的get请示,把user跟pwd作为参数传过来,nginx接收,然后走一下数据库验证并给出返回,这应该是个简单得不能再简单的登录了吧。既然那么简单那么就直接上代码原创 2016-07-13 15:21:54 · 6175 阅读 · 0 评论 -
OpenResty学习笔记(八) lua高阶之面向对象编程
在 Lua 中,我们可以使用表和函数实现面向对象。将函数和相关的数据放置于同一个表中就形成了一个对象。 请看文件名为 account.lua 的源码:local _M = {}local mt = { __index = _M }function _M.deposit (self, v) self.balance = self.balance + vendfunction _M.with原创 2016-07-01 15:38:40 · 1200 阅读 · 0 评论 -
OpenResty学习笔记(七) lua高阶之元表
接下来我们开始学习lua的高阶知识,元表(metatable)。 在 Lua 5.1 语言中,元表 (metatable) 的表现行为类似于 C++ 语言中的操作符重载,例如我们可以重载 “__add” 元方法 (metamethod) ,来计算两个 Lua 数组的并集;或者重载 “__index” 方法,来定义我们自己的 Hash 函数。Lua 提供了两个十分重要的用来处理元表的方法,如下:se原创 2016-06-30 10:36:25 · 1006 阅读 · 0 评论 -
OpenResty学习笔记(六) 文件操作
今天我们来看一下lua的文件操作。 首先,Lua I/O 库提供两种不同的方式处理文件:隐式文件描述,显式文件描述。 隐式文件描述就是设置一个默认的输入或输出文件,然后在这个文件上进行所有的输入或输出操作。所有的操作函数由 io 表提供。 而显式文件描述是使用 file:XXX() 函数方式进行操作,其中 file 为 io.open() 返回的文件句柄。 简单的理解为如果是通过io.XXX...原创 2016-06-29 10:34:08 · 2480 阅读 · 3 评论 -
Nginx与Lua执行顺序
今天我们来学习一下OpenResty初级里面剩余的知识,包括lua的table库,日期时间函数,文件处理以及lua的数学库的知识。table是lua应用里面经常能用到的,所以我们要好好学习一下,还有lua的文件处理,都应该是比较常用的。 不过像日期时间函数我们简单了解一下就可以,因为在 OpenResty 的世界里,不推荐使用这里的标准时间函数,因为这些函数通常会引发不止一个昂贵的系统调用,同转载 2016-06-28 15:25:56 · 786 阅读 · 0 评论 -
OpenResty学习笔记(五) table库
今天我们来学习一下OpenResty初级里面剩余的知识,包括lua的table库,日期时间函数,文件处理以及lua的数学库的知识。table是lua应用里面经常能用到的,所以我们要好好学习一下,还有lua的文件处理,都应该是比较常用的。 不过像日期时间函数我们简单了解一下就可以,因为在 OpenResty 的世界里,不推荐使用这里的标准时间函数,因为这些函数通常会引发不止一个昂贵的系统调用,同原创 2016-06-28 10:19:54 · 1699 阅读 · 0 评论 -
OpenResty学习笔记(三) 模块
又是好长的一段时间没有更新了,长时间的出差感觉都没有精力去学习一些东西了,平时休息时间又有太多的诱惑在,所以感觉想找到一个安心学习的时候真的是不容易啊,其实是又在为自己偷懒找借口啦。好啦,言归正传,开始今天的话题。 首先想说一下OpenResty这个名字的由来,为什么要说这个呢,是因为前一段时间公司里开了一个小型的技术交流会,主要讲的是REST方式的架构风格。所以先在这里小白一下什么是RE原创 2016-06-11 16:25:56 · 1540 阅读 · 0 评论 -
OpenResty学习笔记(二)函数
最近这两天出差了,学习任务被搁下了实在是不应该。不说了,抓紧学习! 这一次要说一下lua的函数跟动态函数。 之前学类型的时候也学习过,函数在lua中也是一种类型,可以进行赋值。所以就有了function_name = function (arc) -- bodyend其实等价于function function_name (arc) -- arc 表示参数列表,函数的参数列表可以原创 2016-06-02 15:31:43 · 926 阅读 · 1 评论 -
OpenResty学习笔记(一)数据结构与控制流
OpenResty学习笔记(一)数据结构与控制流 第一天学习了一些lua的一些基本的数据结构跟控制流程,还有一些最基本的库。这里列一下一些不太一样的地方,方便大家参考。 nil 是一种类型,Lua 将 nil 用于表示“无效值”。一个变量在第一次赋值前的默认值是 nil,将 nil 赋予给一个全局变量就等同于删除它 OpenResty 的 Lua 接口还提供了一种特殊的空值,即原创 2016-05-31 14:26:44 · 1095 阅读 · 0 评论 -
OpenResty学习笔记(十一) nginx做负载均衡
其实这一节不算OpenResty的学习内容,因为负载均衡完全是由nginx完成的,不过也把它放在这里吧,谁让是一块学的呢。废话不多说,开始今天的学习任务。 首先介绍一个负载均衡,引用最佳实践里面的句子:负载均衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同原创 2016-07-21 11:37:09 · 4522 阅读 · 1 评论