
lua
文章平均质量分 86
thushear
缘起:早先把一些知识的碎片都记在自己的svn和github,现在也在搞社区,所以特开通csdn博客,个人觉得最重要的是每天一点点持续的进步,积少成多,量变引起质变,在小白通往大牛的路上共同努力
展开
-
lua学习1
参考资料http://coolshell.cn/articles/10739.html运行首先,我们需要知道,Lua是类C的,所以,他是大小写字符敏感的。 下面是Lua的Hello World。注意:Lua脚本的语句的分号是可选的,这个和GO语言很类似。 1 print(“Hello World”) 你可以像python一样,在命令行上运行lua命令后进入lua的shell中执行语句 L转载 2015-06-19 10:33:44 · 468 阅读 · 0 评论 -
lua--lua中的迭代器
前言迭代器就是一种可以遍历一种集合中所有元素的机制,在Lua中,通常将迭代器表示为函数。每调用一次函数,就返回集合中的“下一个”元素。每个迭代器都需要在每次成功调用之后保存一些状态,这样才能知道它所在的位置及如何走到下一个位置,通过之前博文的总结,闭包对于这样的任务提供了极佳的支持。现在我们就用代码来实现一个简单的迭代器。function values(tb) local i = 0转载 2015-11-24 22:36:18 · 2136 阅读 · 0 评论 -
lua入门--闭包
在很多语言中都有闭包的概念,而在这里,我将主要对Lua语言的闭包概念进行分析与总结。希望对大家学习Lua有帮助。什么是闭包?闭包在Lua中是一个非常重要的概念,闭包是由函数和与其相关的引用环境组合而成的实体。我们再来看一段代码:function newCounter() local i = 0 return function () -- 匿名函数 i = i转载 2015-11-23 23:00:23 · 573 阅读 · 0 评论 -
lua入门--函数
Lua中的函数和C++中的函数的含义是一致的,Lua中的函数格式如下:function MyFunc(param) -- Do somethingend在调用函数时,也需要将对应的参数放在一对圆括号中,即使调用函数时没有参数,也必须写出一对空括号。对于这个规则只有一种特殊的例外情况:一个函数若只有一个参数,并且此参数是一个字符串或table构造式,那么圆括号便可以省略掉。看以下代码:、p转载 2015-11-23 22:49:51 · 451 阅读 · 0 评论 -
lua--lua中的类型和值
Lua中的类型与值Lua是一种动态类型的语言。在语言中没有类型定义的语法,每个值都带有其自身的类型信息。在Lua中有8中基本类型,分别是:nil(空)类型boolean(布尔)类型number(数字)类型string(字符串)类型userdata(自定义类型)function(函数)类型thread(线程)类型table(表)类型以上是Lua中的8中基本类型,我们可以使用type函数转载 2015-11-17 23:12:13 · 457 阅读 · 0 评论 -
lua入门系列--lua中的语句
赋值赋值的基本含义是修改一个变量或一个table中字段的值,这个和其它语言没有多少区别,但是对于Lua,有一个特性,它允许“多重赋值”,也就是一下子将多个值赋予多个变量,例如以下代码:local x1, x2 = 2, 4print(x1) -->2print(x2) -->4在多重赋值中,Lua先对等号右边的所有元素求值,然后才执行赋值,例如以下用法,可以非常简便的交换两个元素转载 2015-11-23 10:11:41 · 434 阅读 · 0 评论 -
lua--lua中的表达式
算术操作符Lua支持常规的算术操作符有:”+”(加法),”-”(减法),”*”(乘法),”/”(除法),”^”(指数),”%”(取模),一元的”-”(负号)。所有的这些操作符都用于实数。例如:x^0.5将计算x的平方根,x^3将计算x的3次方。关系操作符Lua提供的关系操作符有:”<”,”>”,”<=”,”>=”,”==”,”~=”;所有这些操作符的运算结果都是true或false。操作符==用于相转载 2015-11-21 15:38:13 · 611 阅读 · 0 评论 -
lua开发--web页面服务
技术选型MQ可以使用如Apache ActiveMQ;Worker/动态服务可以通过如Java技术实现;RPC可以选择如alibaba Dubbo;KV持久化存储可以选择SSDB(如果使用SSD盘则可以选择SSDB+RocksDB引擎)或者ARDB(LMDB引擎版);缓存使用Redis;SSDB/Redis分片使用如Twemproxy,这样不管使用Java还是Nginx+Lua,它们都不关心分片逻辑转载 2015-11-12 21:24:07 · 8739 阅读 · 0 评论 -
lua资源
manual.luaer.cn lua在线手册book.luaer.cn lua在线lua学习教程lua参考手册Lua参考手册的中文翻译(云风翻译版本)关于Lua的标库,你可以看看官方文档:string, table, math, io, os。原创 2015-11-13 17:41:12 · 731 阅读 · 0 评论 -
lua--简明教程
概述Lua脚本是一个很轻量级的脚本,也是号称性能最高的脚本,用在很多需要性能的地方,比如:游戏脚本,nginx,wireshark的脚本,当你把他的源码下下来编译后,你会发现解释器居然不到200k,这是多么地变态啊(/bin/sh都要1M,MacOS平台),而且能和C语言非常好的互动。我很好奇得浏览了一下Lua解释器的源码,这可能是我看过最干净的C的源码了。运行首先,我们需要知道,Lua是类C的,所转载 2015-11-13 17:40:04 · 1698 阅读 · 0 评论 -
lua开发--web实战
此处我说的HTTP服务主要指如访问京东网站时我们看到的热门搜索、用户登录、实时价格、实时库存、服务支持、广告语等这种非Web页面,而是在Web页面中异步加载的相关数据。这些服务有个特点即访问量巨大、逻辑比较单一;但是如实时库存逻辑其实是非常复杂的。在京东这些服务每天有几亿十几亿的访问量,比如实时库存服务曾经在没有任何IP限流、DDos防御的情况被刷到600多万/分钟的访问量,而且能轻松应对。支撑如此转载 2015-11-12 01:57:36 · 6131 阅读 · 0 评论 -
lua开发--模板渲染
动态web网页开发是Web开发中一个常见的场景,比如像京东商品详情页,其页面逻辑是非常复杂的,需要使用模板技术来实现。而Lua中也有许多模板引擎,如目前我在使用的lua-resty-template,可以渲染很复杂的页面,借助LuaJIT其性能也是可以接受的。如果学习过JavaEE中的servlet和JSP的话,应该知道JSP模板最终会被翻译成Servlet来执行;而lua-resty-templa转载 2015-11-11 23:05:18 · 1735 阅读 · 0 评论 -
lua开发--字符串,json,编码转换
JSON库在进行数据传输时JSON格式目前应用广泛,因此从Lua对象与JSON字符串之间相互转换是一个非常常见的功能;目前Lua也有几个JSON库,本人用过cjson、dkjson。其中cjson的语法严格(比如unicode \u0020\u7eaf),要求符合规范否则会解析失败(如\u002),而dkjson相对宽松,当然也可以通过修改cjson的源码来完成一些特殊要求。而在使用dkjson时也转载 2015-11-10 17:10:10 · 16528 阅读 · 0 评论 -
lua开发之--mysql和http模块
Mysql客户端lua-resty-mysql是为基于cosocket API的ngx_lua提供的Lua Mysql客户端,通过它可以完成Mysql的操作。默认安装OpenResty时已经自带了该模块,使用文档可参考https://github.com/openresty/lua-resty-mysql。编辑test_mysql.lualocal function close_db(db)转载 2015-11-09 23:36:33 · 6874 阅读 · 0 评论 -
Redis安装与使用
Redis安装与使用1、下载redis并安装 cd /usr/servers/ wget https://github.com/antirez/redis/archive/2.8.19.tar.gz tar -xvf 2.8.19.tar.gz cd redis-2.8.19/ make 2、后台启动Redis服务器 nohup /usr/s转载 2015-11-09 19:44:16 · 459 阅读 · 0 评论 -
lua开发--lua模块和redis
lua模块开发在实际开发中,不可能把所有代码写到一个大而全的lua文件中,需要进行分模块开发;而且模块化是高性能Lua应用的关键。使用require第一次导入模块后,所有Nginx 进程全局共享模块的数据和代码,每个Worker进程需要时会得到此模块的一个副本(Copy-On-Write),即模块可以认为是每Worker进程共享而不是每Nginx Server共享;另外注意之前我们使用init_by转载 2015-11-09 21:55:23 · 10815 阅读 · 0 评论 -
nginx和lua开发二
title: date: 2015-11-07 22:37:18 categories: - lua tags:- luaNginx入门本文目的是学习Nginx+Lua开发,对于Nginx基本知识可以参考如下文章:nginx启动、关闭、重启http://www.cnblogs.com/derekchen/archive/2011/02/17/1957209.htmlagentzh 的 Ng转载 2015-11-08 15:33:52 · 459 阅读 · 0 评论 -
lua--协程
前言协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈、局部变量和指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。从概念上讲,线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。就是说,一个具有多个协同程序的程序在任意时刻只能运行一个协同程序,并且正在运行的协同程序只会在其显式地要求挂起时,它的执行才会暂停。协同程序基础Lua转载 2015-11-25 10:08:52 · 404 阅读 · 0 评论