You call lua_pcall with the number of arguments you are passing and the number of results you want. The fourth argument indicates an error-handling fu
转载
2018-04-13 11:24:00
1167阅读
2评论
lua_pcall和lua_call功能一样,只是lua_pcall提供了一个可以提供错误处理函数的功能首先压入函数 ,再依次压入参数,现在你就可以调用lua_call了,函数调用后将参数,函数都弹栈,函数返回时会将返回值依次压栈。调用前堆栈情况参数参数函数调用后堆栈情况返回值注意:无论在c函数里怎么调用栈,在pcall之后都会按函数的参数和返回值恢复栈
转载
2013-11-08 20:29:00
660阅读
2评论
尾调用 tail call概念:一个函数里的最后一个动作是一个函数调用的情形Lua例:function func1(x) do return func2(x) end也就是说,是这个调用的返回值直接被当前函数返回的情形。为什么这种情况要单独拿出来定义,首先要明确函数 调用栈 的概念。调用栈在程序的内存空间中,有一块专门的区域被用来记录正在调用的函数的情况,这块区域就是函数调用栈。 每次调用一个新的
最近在学习使用Lua,也通过基本的语法知识完成了公司的一个关于配置文件参数合法性检查的小任务。虽然任务完成了,但对于一些函数的调用目的还是搞不明白,这两天再次重看了Manual Reference,稍微梳理出了一点眉目,记录在此。
转载
2021-09-29 12:05:32
2098阅读
系列文章目录 文章目录目录前言一、程序架构二、Bug所在三、修复bug总结 前言这段时间接手一个使用lwip的项目,各种不稳定,异常crash、内存申请不出来、ping不通。当然我使用的版本比较老,本身也有bug,这个可以网上找找,但是这篇博客肯定不是谈这些。当你已经按照网友修复了各种bug,他依旧不稳定。其实对程序而言,一个程序行为诡异,往往和竞争有关系。大家
1 配置工作环境a 下载LUA安装包 sf_200472410155.zip b 然后,解压用于WIN32下的安装包。放在一个盘的目录下如:C:/LUA50 c 打开VC++6.0,点击Project下的Setting中将include目录设为C:/LU
转载
2024-08-21 20:18:31
47阅读
十一:创建Define定义文件和pch预处理文件1、在Define目录里创建Const.h文件,用于保存一些常用的宏命令 #define CURRENT_APPID @""
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE (UI_USER_INTERFACE_IDIO
当master根据replica的PSYNC命令判断不能进行增量同步时,下面就需要进行全量同步。replica接受全量数据对于replica来说,会向事件循环中注册可读事件readSyncBulkPayload,用来接受从master传过来的全量数据:void syncWithMaster(aeEventLoop *el, int fd, void *privdata, int mask) {
转载
2024-01-28 06:17:50
35阅读
目录基本介绍设计目的Lua 特性lua基本语法 变量流程控制 redis执行lua脚本 - EVAL指令 案例1:基本案例案例2:动态传参 案例3:执行redis类库方法案例4:给redis类库方法动态传参案例5:pcall函数的使用(了解) 性能优化 - EVALSHA指令基本介绍Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开
转载
2023-09-27 09:17:28
153阅读
介绍Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Redis通过内置的 Lua 解释器,可以使用 EVAL 命令对 Lua 脚本进行求值。在lua脚本中可以通过两个不同的函数调用redis命令,分别是:redis.call() 和 redis.pcall()脚本的原子性Redis 使用 Lua
转载
2023-07-03 17:11:02
55阅读
Redis从2.6开始支持Lua脚本,和事务的功能类似,可以通过Lua脚本原子的执行多个Redis命令。Redis提供了EVAL和EVALSHA命令执行lua脚本。
创建并修改Lua坏境Redis在服务器内嵌了一个Lua坏境,并进行了一系列的修改,从而确保这个Lua坏境可以满足Redis服务器的需要,通过下列步骤创建并修改Lua坏境:创建一个基础Lua坏
转载
2023-12-26 16:58:16
22阅读
创建并修改Luab环境为了在Redis服务器中执行Lua,Redis在服
原创
2022-04-02 17:06:26
461阅读
探秘lua的虚拟机 lua是脚本语言,需要借助虚拟机的解释才能被执行,lua的虚拟机是c写的,我们写了一段程序后,调用lua的虚拟机执行,虚拟机首先会将我们的lua代码使用词法分析和语法分析翻译成一系列操作指令,这个操作指令是32bit的,从低到高,前6为是操作码i,后边都是给寄存器空下来的存储数据用的,根据不同的需求,这个寄存器可以拆分成3个,2个,甚至是1个,它对应的模式一般有这三种iABC,
转载
2024-04-02 21:58:56
100阅读
创建并修改Luab环境为了在Redis服务器中执行Lua脚本,Redis在服务器内嵌了一个Lua环境(environment),并对这个Lua环境进行了一系列修改,从而确
原创
2021-12-06 14:16:38
360阅读
20 Lua脚本作用: 通过在服务器嵌入Lua环境,客户端可以使用Lua脚本,直接在服务器端原子性地执行多个Redis命令EVAL:可以直接对输入的脚本进行求值 EVALSHA:可以根据脚本的SHA1校验和来对脚本进行求职;要求校验和对应的脚本至少被EVAL执行过一次或曾被SCRIPT LOAD 命令载入过20.1 创建并修改Lua环境过程:8步 接下来逐一介绍这些步骤20.1.1 创建Lua环境
转载
2023-08-22 10:40:44
126阅读
redis补充这篇文章是redis入门笔记的补充。1.info命令用来显示服务的信息。info命令可以跟下面的选项:
server: 关于 Redis 服务器的一些信息
clients: 客户端连接部分
memory: 内存消耗相关信息
persistence: RDB和AOF相关信息
stats: 一些统计
replication: 主/副本复制信息
cpu: CPU消耗统计
commandst
转载
2023-08-22 16:27:02
462阅读
Redis整合LuaRedis的消息模式Redis实现分布式锁常见的缓存问题我们先从Redis整合Lua的使用开始。lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。在Redis中使用Lua有以下好处: 减少网络开销,在Lua脚本中可以把多个命令放在同一个脚本中运行。原子操作,redis会将整个脚本作为一
转载
2023-09-01 08:11:22
56阅读
上节对Redis功能进行扩展,发布/订阅模式、事务相关内容。本节使用Lua对Redis的功能进行扩展。Lua是一个轻3台机器,赶紧尝试在公网上搭建体验一下。
原创
2024-07-30 11:39:58
79阅读
简介Redis 的客户端和服务端之间采取了一种独立名为 RESP(REdis Serialization Protocol) 的协议,作者主要考虑了以下几个点:容易实现解析快人类可读注意:RESP 虽然是为 Redis 设计的,但是同样也可以用于其他 C/S 的软件。数据类型及示例RESP 主要可以序列化以下几种类型:整数,单行回复(简单字符串),数组,错误信息,多行字符串。Redis 客户端向服
转载
2024-01-08 19:36:54
106阅读
小a今天和大家讲讲浏览器崩溃的原因。那么我们今天讲第一种原因 - 插件插件是什么?在这里就不细讲了。大家可以百度一下。当我们在启动浏览器的时候,浏览器会自动加载各种各样的插件。比如什么迅雷下载小助手,雅虎工具条等等这些插件不仅严重影响了我们浏览器的启动速度(就是从我们打开网页然后到浏览器完全启动完毕的时间段)。而且也增加了很多的不稳定性。首先第一个理由:程序没有完美的,必定会有bug。如果说一个公
转载
2024-04-30 19:27:29
50阅读