草庐IT

lua-cjson

全部标签

lua - redis-lua 在需要时返回 nil

我是lua新手。我想从Lua访问redis。我下载了https://github.com/nrk/redis-lua,将文件夹更改为/src,我可以在其中看到文件redis.lua。因此,如果我启动Lua并尝试导入此文件,我会得到以下信息:root@debian:/home/debian/redis-lua-master/src#lsredis.luaroot@debian:/home/debian/redis-lua-master/src#luaLua5.3.2Copyright(C)1994-2015Lua.org,PUC-Rio>localr=require'redis'>rni

lua - 我们可以像存储过程一样在 Redis 中同时执行多个操作吗

我有一个存储在哈希中的用户信息。我将他的权限信息存储在一个Set中。我想测试Set上的条件,检索键,然后使用从哈希中检索到的键获取实际值。我该怎么做?我必须使用Lua脚本来实现上述目标还是有其他方法? 最佳答案 在这种情况下,您必须使用多个请求来完成。虽然Lua似乎是这种方式,但您的要求(即根据另一个键的值获取一个键)排除了单个脚本,因为应显式传递键名。 关于lua-我们可以像存储过程一样在Redis中同时执行多个操作吗,我们在StackOverflow上找到一个类似的问题:

lua - 我们可以像存储过程一样在 Redis 中同时执行多个操作吗

我有一个存储在哈希中的用户信息。我将他的权限信息存储在一个Set中。我想测试Set上的条件,检索键,然后使用从哈希中检索到的键获取实际值。我该怎么做?我必须使用Lua脚本来实现上述目标还是有其他方法? 最佳答案 在这种情况下,您必须使用多个请求来完成。虽然Lua似乎是这种方式,但您的要求(即根据另一个键的值获取一个键)排除了单个脚本,因为应显式传递键名。 关于lua-我们可以像存储过程一样在Redis中同时执行多个操作吗,我们在StackOverflow上找到一个类似的问题:

Lua 表作为数据库的前端

我正在尝试将数据库实现为Lua表。使用元表,该表将是空的,当请求或修改表中的项目时,它将返回或修改数据库中的项目。数据库本身永远不会加载到内存中,除了被请求的部分。程序应该将其作为表格进行交互(因为它是表格)。该表,因为它只是一个“前端”,会将修改后的数据保存到数据库中(而不是在表中定义该项目)。在里面没有表格的表格中,这很容易实现。我试图让它与无限深度的多层表一起工作。(旁白:我正在考虑的数据库是redis。理想情况下,只需更改基本操作语法,就可以为任何数据库或类似数据库的服务器实现。)由于Lua元表的行为,__newindex方法仅在顶层修改某些内容(或创建,如果您使用代理)时使用

Lua 表作为数据库的前端

我正在尝试将数据库实现为Lua表。使用元表,该表将是空的,当请求或修改表中的项目时,它将返回或修改数据库中的项目。数据库本身永远不会加载到内存中,除了被请求的部分。程序应该将其作为表格进行交互(因为它是表格)。该表,因为它只是一个“前端”,会将修改后的数据保存到数据库中(而不是在表中定义该项目)。在里面没有表格的表格中,这很容易实现。我试图让它与无限深度的多层表一起工作。(旁白:我正在考虑的数据库是redis。理想情况下,只需更改基本操作语法,就可以为任何数据库或类似数据库的服务器实现。)由于Lua元表的行为,__newindex方法仅在顶层修改某些内容(或创建,如果您使用代理)时使用

lua - 你必须提前在 Redis 脚本中声明你的 key 吗?

我的计划是将一些现有的Redis键存储在哈希中,稍后将从RedisLua脚本中获取并执行操作。我读到最好的做法是在调用EVAL时提供脚本中使用的所有键。我的问题是,运行一个在运行EVAL时没有提供任何key但对从内获取的一些key进行操作的脚本是否安全剧本?如果没有,后果是什么,我该如何避免这个缺点?我提到在EVAL时,无法知道特定哈希中的键是什么。我可以在EVAL之前的步骤中从散列中获取所有键,然后将它们提供给EVAL,但这听起来有点矫枉过正。 最佳答案 由于文档中的歧义,这个问题被问了很多(例如,参见this和this),但我将

lua - 你必须提前在 Redis 脚本中声明你的 key 吗?

我的计划是将一些现有的Redis键存储在哈希中,稍后将从RedisLua脚本中获取并执行操作。我读到最好的做法是在调用EVAL时提供脚本中使用的所有键。我的问题是,运行一个在运行EVAL时没有提供任何key但对从内获取的一些key进行操作的脚本是否安全剧本?如果没有,后果是什么,我该如何避免这个缺点?我提到在EVAL时,无法知道特定哈希中的键是什么。我可以在EVAL之前的步骤中从散列中获取所有键,然后将它们提供给EVAL,但这听起来有点矫枉过正。 最佳答案 由于文档中的歧义,这个问题被问了很多(例如,参见this和this),但我将

database - 您可以读取 Redis Lua 脚本中未明确指定的键吗?

下面是一个示例场景来说明:假设我们有一些键=>值对:hmsetthing1name'athing'colorredhmsetthing2name'anotherthing'colorgreenhmsetthing3name'alsoathing'colorblue以及一个值为键名的列表:lpushthingsthing1lpushthingsthing2lpushthingsthing3我的目标是使用间接从一系列事物中获取值:thingsArray=lrangethings02foreachthinginthingsArrayresult.push(hmgetthingnamecolo

database - 您可以读取 Redis Lua 脚本中未明确指定的键吗?

下面是一个示例场景来说明:假设我们有一些键=>值对:hmsetthing1name'athing'colorredhmsetthing2name'anotherthing'colorgreenhmsetthing3name'alsoathing'colorblue以及一个值为键名的列表:lpushthingsthing1lpushthingsthing2lpushthingsthing3我的目标是使用间接从一系列事物中获取值:thingsArray=lrangethings02foreachthinginthingsArrayresult.push(hmgetthingnamecolo

lua - 我将使用什么命令使 Redis 中的 key 过期,这些 key 的生存时间少于 5 天?

我的数据库中的session被设置为哈希:1)"sid:lpg3um654ckqp7tj7fkr2qs2Zz"(thishasattlofaweek)2)"sid:lpg3um654ckqp7tj7fkr2qs2Yy"(thishasattlof6days)3)"sid:g6sftph5dnun5bk6l0hqyyh6p5"(thishasattlof5days)4)"sid:g6sftph5dnun5bk6l0hqyxh6x3"(thishasattlof4days)5)"sid:g6sftph5dnun5bk6l0hqyxh4t1"(thishasattlof3.5days)我知道