lua_pcalllua_call功能一样,只是lua_pcall提供了一个可以提供错误处理函数的功能首先压入函数 ,再依次压入参数,现在你就可以调用lua_call了,函数调用后将参数,函数都弹栈,函数返回时会将返回值依次压栈。调用前堆栈情况参数参数函数调用后堆栈情况返回值注意:无论在c函数里怎么调用栈,在pcall之后都会按函数的参数和返回值恢复栈
转载 2013-11-08 20:29:00
660阅读
2评论
当master根据replica的PSYNC命令判断不能进行增量同步时,下面就需要进行全量同步。replica接受全量数据对于replica来说,会向事件循环中注册可读事件readSyncBulkPayload,用来接受从master传过来的全量数据:void syncWithMaster(aeEventLoop *el, int fd, void *privdata, int mask) {
转载 2024-01-28 06:17:50
35阅读
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评论
1. ev={} 2. functin ev.__call() 3. print "called from ev" 4. end 5. 6. setmetatable(ev, ev) 7. 8. -- test it 9. ev()
转载 2016-11-11 15:13:00
195阅读
2评论
上节对Redis功能进行扩展,发布/订阅模式、事务相关内容。本节使用Lua对Redis的功能进行扩展。Lua是一个轻3台机器,赶紧尝试在公网上搭建体验一下。
原创 2024-07-30 11:39:58
83阅读
创建并修改Luab环境为了在Redis服务器中执行Lua,Redis在服
原创 2022-04-02 17:06:26
461阅读
创建并修改Luab环境为了在Redis服务器中执行Lua脚本,Redis在服务器内嵌了一个Lua环境(environment),并对这个Lua环境进行了一系列修改,从而确
最近在学习使用Lua,也通过基本的语法知识完成了公司的一个关于配置文件参数合法性检查的小任务。虽然任务完成了,但对于一些函数的调用目的还是搞不明白,这两天再次重看了Manual Reference,稍微梳理出了一点眉目,记录在此。
转载 2021-09-29 12:05:32
2098阅读
从redis 2.6.0版本开始,redis内置了Lua解释器,并提供了eval命令来解析Lua脚本求值。1. 语法格式语法: eval script numkeys keys args参数: eval — redis提供解析lua脚本的命令script — lua脚本numkeys — 指定键名参数集(keys)的个数keys — 键名参数集,通过全局变量KEYS数组表示,起始下标为1args
转载 2023-08-22 13:03:00
781阅读
在学习一门语言的时候,开始的时候就是不断熟悉其提供的API函数,只有熟悉了API函数的使用,才能在里面加入自己的思想,从而发挥作用达到自己的目的。今天学习的是lua_call,和该函数相似的函数分别是lua_pcalllua_cpcall.这些函数的目的就是让我们能够执行压入栈中的函数,该函数可...
转载 2015-01-27 18:11:00
696阅读
2评论
redis学习笔记参考文档链接:https://pan.baidu.com/s/1sMUUYR3VGZcqPmJQNWeYDA 密码:hf2nredis脚本lua语言使用lua语言写一个脚本: local times = redis.call('incr', KEYS[1]) if times == 1 then -- keys[1]键刚创建吗所以为其设置生存时间
转载 2023-05-30 15:31:51
126阅读
文章目录什么是控件输入call定位控件输入call定位字符长度通过字符长度定位控件输入call 什么是控件输入call当我们想要在游戏里进行喊话和聊天的时候,需要在游戏内置的控件里输入相应的内容,这个往控件输入内容的call就叫控件输入call。定位控件输入call以游戏的账号密码输入框为例,来找这样一个控件输入框。当我们在输入字符的时候,这个call会在内部改变当前的字符长度,字符长度就可以作
转载 2024-05-21 22:11:42
154阅读
Lua面向对象编程1、__index学习【前置知识】setmatatable:设置元表setmetatable(table1, metatable)metatable里一般实现__index、__newindex、__add等元方法实现对table的某种操作当__index为表时通过键值访问table时,如果没有这个键,那么Lua就会寻找table的metatable中__
原创 2022-01-29 09:54:40
1086阅读
Lua面向对象编程1、__index学习【前置知识】setmatatable:设置元表setmetatable(table1, metatable)metatable里一般实现__index、__newindex、__add等元方法实现对table的某种操作当__index为表时通过键值访问table时,如果没有这个键,那么Lua就会寻找table的metatable中__index表里的key键性质很像继承关系的父亲【代码】t1 = {area = 0}.
原创 2021-09-06 11:43:44
788阅读
redis从2.6版本开始内置支持Lua解释器,解释器提供了3个函数来处理redis的命令redis.call() redis.pcall()和 redis.log,同时redis 也保证脚本会以原子性的方式执行。这是一个很重要的因素。本文涉及到的命令有 EVAL EVALSHA SCRIPT LOAD SCRIPT FLUSH
转载 2023-09-07 07:55:19
0阅读
目录基本介绍设计目的Lua 特性lua基本语法 变量流程控制 redis执行lua脚本 - EVAL指令 案例1:基本案例案例2:动态传参 案例3:执行redis类库方法案例4:给redis类库方法动态传参案例5:pcall函数的使用(了解) 性能优化 - EVALSHA指令基本介绍Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开
转载 2023-09-27 09:17:28
153阅读
Redis从2.6开始支持Lua脚本,和事务的功能类似,可以通过Lua脚本原子的执行多个Redis命令。Redis提供了EVAL和EVALSHA命令执行lua脚本。 创建并修改Lua坏境Redis在服务器内嵌了一个Lua坏境,并进行了一系列的修改,从而确保这个Lua坏境可以满足Redis服务器的需要,通过下列步骤创建并修改Lua坏境:创建一个基础Lua
介绍Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 Redis通过内置的 Lua 解释器,可以使用 EVAL 命令对 Lua 脚本进行求值。在lua脚本中可以通过两个不同的函数调用redis命令,分别是:redis.call() 和 redis.pcall()脚本的原子性Redis 使用 Lua
转载 2023-07-03 17:11:02
55阅读
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阅读
  • 1
  • 2
  • 3
  • 4
  • 5