Lua

nvim copilot.lua

超简单配置 AI 加持的 VIM, Nvim + Copilot_哔哩哔哩_bilibili 》:Copilot auth ......
copilot nvim lua

Lua 数据库访问

# Lua 数据库访问 本文主要为大家介绍 Lua 数据库的操作库:[LuaSQL](http://luaforge.net/projects/luasql/)。他是开源的,支持的数据库有:ODBC, ADO, Oracle, MySQL, SQLite 和 PostgreSQL。 本文为大家介绍M ......
数据库 数据 Lua

Lua 面向对象

# Lua 面向对象 面向对象编程(Object Oriented Programming,OOP)是一种非常流行的计算机编程架构。 以下几种编程语言都支持面向对象编程: **所谓的面向对象不过是把数据结构的组织,把零散的方法和变量封装成一个整体,组件化从而可以组建成更加庞大的体系构建世界万物。** ......
对象 Lua

Lua 垃圾回收

# Lua 垃圾回收 Lua 采用了自动内存管理。 这意味着你不用操心新创建的对象需要的内存如何分配出来, 也不用考虑在对象不再被使用后怎样释放它们所占用的内存。 Lua 运行了一个**垃圾收集器**来收集所有**死对象** (即在 Lua 中不可能再访问到的对象)来完成自动内存管理的工作。 Lua ......
垃圾 Lua

Lua 错误处理

# Lua 错误处理 程序运行中错误处理是必要的,在我们进行文件操作,数据转移及web service 调用过程中都会出现不可预期的错误。 如果不注重错误信息的处理,就会造成信息泄露,程序无法运行等情况。 任何程序语言中,都需要错误处理。错误类型有: - 语法错误 - 运行错误 ## 语法错误 语法 ......
错误 Lua

Lua 调试

# Lua 调试(Debug) Lua 提供了 debug 库用于提供创建我们自定义调试器的功能。 Lua 本身并未有内置的调试器,但很多开发者共享了他们的 Lua 调试器代码。 Lua 中 debug 库包含以下函数: | 序号 | 方法 & 用途 | | : | : | | 1. | **deb ......
Lua

Lua 文件

# Lua 文件 I/O lua常用的就是内存操作,和redis,mysql,kafka中间件打通。 Lua I/O 库用于读取和处理文件。 分为简单模式(和C一样)、完全模式。 - 简单模式(simple model)拥有一个当前输入文件和一个当前输出文件,并且提供针对这些文件相关的操作。 - 完 ......
文件 Lua

Lua 协同程序

# Lua 协同程序(coroutine) **目前来说基本用不到,暂时记录** ## 什么是协同(coroutine)? Lua 协同程序(coroutine)与线程比较类似: 拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。 协同是非常强大的功能 ......
程序 Lua

Lua 元表

# Lua 元表(Metatable) **在 Lua table 中我们可以访问对应的 key 来得到 value 值,但是却无法对两个 table 进行操作(比如相加)。** 因此 Lua 提供了元表(Metatable),允许我们改变 table 的行为,每个行为关联了对应的元方法。 例如,使 ......
Lua

Lua 模块与包

# Lua 模块与包 模块类似于一个封装库, 从 Lua 5.1 开始,Lua 加入了标准的模块管理机制, 可以把一些公用的代码放在一个文件里,以 API 接口的形式在其他地方调用, 有利于代码的重用和降低代码耦合度。 Lua 的模块是由变量、函数等已知元素组成的 **table**, 因此创建一个 ......
模块 Lua

Lua语言- 1

### 0- Lua语言介绍 #### 特性 - **轻量级**:它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。 - **可扩展**:Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功 ......
语言 Lua

关于Linux系统下Lua编程运行环境的部署安装

这里以操作系统:Red Hat Enterprise Linux release 8.7 (Ootpa) 为例,讲解如下部署Lua编程脚本的运行环境 首先对于Lua脚本,需要保证系统中有lua二进制程序文件,即/usr/bin/lua 但最小化安装的Linux - Red Hat Enterpris ......
环境 系统 Linux Lua

Lua 中如何实现继承

> 本文主要参考了菜鸟教程中的 [Lua 面向对象](https://www.runoob.com/lua/lua-object-oriented.html),再加上自己学习过程的中思考,特此记录,如果文中有不对的地方,请不吝赐教。 这里就不在介绍面向对象的基本思想了,主要讲一讲 Lua 中如何实现 ......
Lua

lua中 . 和 : 的区别

> 最近项目中使用到了 lua,因为之前没怎么接触过,特此记录下自己在学习过程中疑惑的地方。 在使用`lua` 进行编码的过程中,我们经常会使用到`.`和`:`,但是对于刚开始接触`lua`的我来说,对这两者的使用还是感到时常感到疑惑,接下来我们一起看看几个例子,来感受两者的区别。如果发现文中错误的 ......
lua

在FreeSWITCH中使用Lua脚本来将电话记录存储到MySQL数据库中

在FreeSWITCH中使用Lua脚本来将电话记录存储到MySQL数据库中,需要做以下几个步骤: 安装MySQL客户端库 首先需要通过包管理器(如apt-get或yum)安装MySQL客户端库,以便FreeSWITCH能够与MySQL数据库进行通信。 例如,在Ubuntu系统中,可以运行以下命令进行 ......
脚本 FreeSWITCH 数据库 电话 数据

压测: wrk压测的lua脚本使用随机列表与字符串参数

## 🍎 问chatgpt的结果 ### ✅ 只随机school **问:**帮我写一个lua脚本,功能是使用wrk压测一个http接口,这个http接口使用post请求,并且body的参数userList是一个列表,另外一个body参数school帮我用随机字符串替代 **答:**当然可以!以下 ......
字符串 脚本 字符 参数 wrk

Lua闭包

1.前言 一等函数:函数用起来和其他类型的值(比如数字或者字符串)没什么分别,比如说可以把函数存储在数据结构里、赋值给变量、作为参数传递给其他函数或者作为返回值从其他函数里返回等。 比如Lua的写法: 高阶函数:如果一个函数以其他函数为参数,或者返回其他函数我们称这个函数为高阶函数。反之,我们称这个 ......
闭包 Lua

Lua注册表和全局变量

Lua给用户提供了一个注册表,这个注册表实际上就是一个普通的Lua表,所以用户可以在里面存放任何Lua值。有趣的是,这个注册表虽然是给用户准备的,但Lua本身也用到了它,比如说Lua全局变量就是借助这个注册表实现的。 预先会往注册表中放入一个全局环境,全局环境也是一个普通的Lua表,所有的Lua全局 ......
注册表 全局 变量 Lua

lua对url字符进行编解码

local function urlEncode(s) s = string.gsub(s, "([^%w%.%- ])", function(c) return string.format("%%%02X", string.byte(c)) end) return string.gsub(s, " ......
字符 lua url

Lua方法

我们知道,Lua解释器在执行脚本之前,需要先把脚本装进一个主函数,然后把主函数编译成函数原型,最后交给Lua虚拟机去执行(详见第2章)。函数原型就相当于面向对象语言里的类,其作用是实例化出真正可执行的函数,也就是前面提到的闭包。 函数原型:编译器为我们事先准备好的各种信息:执行函数所需要的寄存器数量 ......
方法 Lua

使用kotlin实现lua的协程(非对称)

一、非对称所以调用的参数和返回值可以是不同的类型 例如:我们创建一个调用的yield参数返回值 // 模板的参数是P,返回值是R // yield对应的传入参数是R,返回值是P interface CoroutineScope<P, R> { val parameter: P? suspend fu ......
kotlin lua

应用问题解决-分布式锁(LUA保证删除原子性)

问题:删除操作缺乏原子性 场景 1、index1获得锁、执行具体操作、比较lock的uuid值确实和自己生成的uuid是否相等,相等则删除锁。 uuid = v1 set(lock, uuid) uuid.equals(get("lock")) 2、但是index1执行删除前,lock刚好过期时间已 ......
分布式 原子 问题 LUA

Redis lua脚本简要学习

# Redis lua脚本简要学习 ## 背景 ``` 上周督促客户从Windows平台升级到了Linux平台. redis一周相安无事. 但是这周一突然又出现了卡断和慢的情况. 只能继续进行分析. ``` ## 分析思路 ``` 现场日志里面出现了大量的错误提示: BUSY Redis is bu ......
简要 脚本 Redis lua

nginx+ngx_lua_waf的实现 centos7

介绍: ngx_lua_waf是⼀个基于ngx_lua的web应⽤防⽕墙。 主要⽤途有: 防⽌sql注⼊,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击 防⽌svn/备份之类⽂件泄漏 防⽌ApacheBench之类压⼒测试⼯具的攻击 屏蔽常⻅的扫描⿊客⼯具,扫描器 屏蔽异常的⽹ ......
ngx_lua_waf centos7 centos nginx lua

lua表实现

Lua在5.0版本之前是简单使用哈希表来实现Lua表的,不过由于在实践中数组的使用非常频繁,所以为了专门优化数组的效率,Lua5.0开始改用混合数据结构来实现表。 简单说,这种混合数据结构同事包含了数组和哈希表两部分。如果表的键是连续的正整数,那么哈希表就是空的,值全部按索引存储在数组里。这样,lu ......
lua

[nginx]lua读取请求体

## 前言 nginx默认不读取请求体的数据,但可以通过`$request_body`内置变量来获取。`$request_body`存在内存中,如果它的字节大小超过nginx配置的`client_body_buffer_size`的值,nginx就会把请求体存放到临时文件中。此时数据就不在内存中了, ......
nginx lua

Lua table(表)

# Lua table(表) table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。 Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。 Lua table 是不固定大小的,你可以根据自己需要进行扩容。 Lua也是通过t ......
table Lua

Multiserver游戏服务器Demo[C++&Lua]

# 代码参考 代码文件参考下述详解的类图,工程参考第零章工程说明 # 关键特性 - 对Socket库进行封装,抹平Socket的Window&Linux的平台差异。 - C++嵌入lua脚本,增加开发者编码效率,减少编译时间消耗。 - 非阻塞网络IO - 多线程任务模型 - 多服务模型 # 详解 # ......
Multiserver 服务器 Demo Lua amp

[nginx]lua控制响应头

## 前言 适用场景:添加CDN缓存时间、操作set-cookie、标记业务数据类型等。 ## 获取响应头 - 指令:`ngx.resp.get_headers` - 语法:`headers = ngx.resp.get_headers(max_headers?,raw?)` - 环境:`set_b ......
nginx lua

[nginx]lua控制请求头

## 前言 nginx原生提供`expires`、`add_header`两个指令控制请求头,在Lua API中也有类似的指令。 ## 添加请求头 - 指令:`ngx.req.set_header` - 语法:`ngx.req.set_header(header_name, header_value ......
nginx lua