草庐IT

lua - Redis - Lua 表作为返回值 - 为什么这不起作用

当我通过redisEVAL运行这段代码时,它没有返回任何结果。知道为什么这不起作用吗?redis-cliEVAL"$(catbug.lua)"0bug.lualocalretv={}retv["test"]=1000returnretv如果我初始化表,则单独打印该值。$catbug.lua--!/usr/bin/envlualocalretv={"This","is","a","bug"}retv["test"]=1000returnretv$redis-cliEVAL"$(catbug.lua)"2ab1)"This"2)"is"3)"a"4)"bug"

lua - 在 Redis/Lua 脚本中使用 TYPE 命令

我正在尝试使用RedisTYPELua脚本中的命令(通过EVAL执行)localkey_type=redis.call("TYPE",key)根据Redis的文档,这应该返回一个"none"、"zset"等的字符串但是返回值的类型是luatable。将值与字符串进行比较总是返回false。我已经设法通过将调用更改为来解决这个问题localkey_type=redis.call("TYPE",key)["ok"]这个值确实是一个字符串并且在字符串比较命令中起作用。我担心这是我特定版本的Redis中的一个错误,当我升级时它会在未来的版本中中断。有谁知道这是预期的行为还是错误?

redis - 如何从 Redis Lua 脚本输出到控制台?

为什么这不打印“你好”?$redis-cli127.0.0.1:6379>eval"print('hello')"0(nil)127.0.0.1:6379>在MacOSX上运行2.8.14,在Windows7上运行2.8.12。我正在从Jedis调用Lua脚本。开发这些就像build一艘船,一个瓶子,戴着连指手套,而有人正在打我的脸。我的最终目标是以某种方式通过打印跟踪语句、调试等方式重新创建半功能开发堆栈。我的Lua脚本的解决方法是使用名为“log”的Redis列表,将其返回给Jedis,然后转储内容。有点像这样:redis.call('del','log')redis.call('

lua - 如何将 Lua 字符串转换为 float

我正在编写一个简单的Lua脚本来计算Redis2.8中排序集(http://redis.io/commands/#sorted_set)的中位数。脚本如下localcnt=redis.call("ZCARD",KEYS[1])ifcnt>0thenifcnt%2>0thenlocalmid=math.floor(cnt/2)returnredis.call("ZRANGE",KEYS[1],mid,mid)elselocalmid=math.floor(cnt/2)localvals=redis.call("ZRANGE",KEYS[1],mid-1,mid)return(tonumb

lua - 使用EVAL、SCAN、DEL的Redis通配符删除脚本返回 "Write commands not allowed after non deterministic commands"

因此,我正在寻求构建一个lua脚本,该脚本使用SCAN查找基于模式的键并删除它们(以原子方式)。我首先准备了以下脚本localkeys={};localdone=false;localcursor="0"repeatlocalresult=redis.call("SCAN",cursor,"match",ARGV[1],"count",ARGV[2])cursor=result[1];keys=result[2];fori,keyinipairs(keys)doredis.call("DEL",key);endifcursor=="0"thendone=true;enduntildon

database - Redis 的 Lua 脚本,它对键的值求和

我正在构建我的第一个Redis服务器端脚本(用于调试),但由于缺乏Lua经验,我陷入了困境。本质上有一个K/V对数据集(包含约1000个值),我想从中列出所有与模式匹配的KEYS。例如在redis-cli中:>KEYS"carlos:*"1)"carlos:1"2)"carlos:2"3)"carlos:3"4)"carlos:4"基于以上输出,我想通过执行Lua脚本返回这些键的总和。目前我的sum.lua上有以下内容localsum=0localmatches=redis.call('KEYS','carlos:*')forunpack(matches)sum=sum+redis.c

c# - C# 的 Lua 包装器?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭6年前。Improvethisquestion我希望将Lua嵌入到我的C#应用程序中,我认为C#的luaAPI有一个包装器,但不记得它是什么了。有人可以指出我的方向吗?

c# - 是否有完全托管的 (.NET) Lua 解释器?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion有谁知道是否有完全托管的(.NET)Lua解释器?常规源可以使用桌面.NET的托管扩展进行编译,但不能嵌入到Silverlight应用程序中。

linux - Lua 脚本在执行无效的 Linux 命令时无法检测/捕获错误

我有以下函数,只要我给它一个有效的命令来执行就可以正常工作。只要我给它一个不存在的命令,脚本就会被错误消息中断。#!/usr/bin/luafunctionexec_com(com)localok,res=pcall(function()returnio.popen(com)end)ifokthenlocaltmp=res:read('*a')res:close()returnok,tmpelsereturnok,resendendlocalst,val=exec_com('uptime')print('Executed"uptime"withstatus:'..tostring(st

android - 配置 : error: You need 32-bits luac when using lua from contrib

我在VMware上安装了ubuntu15.10(32和64)位。我正在尝试使用以下步骤编译vlc:https://wiki.videolan.org/AndroidCompile/我遇到了这个错误:checkingforLUA...noconfigure:WARNING:Nopackage'lua5.2'found,tryinglua5.1insteadcheckingforLUA...noconfigure:WARNING:Nopackage'lua5.1'found,tryinglua>=5.1insteadcheckingforLUA...yescheckingforluac..