在redis中获取lua中的当前日期和时间

Nic*_*ick 6 lua redis

如何在Redis中嵌入Lua中获取当前日期/时间?

我需要以下列格式--YYYY-MM-DD,HH:MM:SS

尝试使用os.date()但它无法识别它.

Ita*_*ber 13

Redis的Lua沙箱只有少数几个库,而os不是其中之一.

您可以TIME像这样从Lua 调用Redis :

local t = redis.call('TIME')
Run Code Online (Sandbox Code Playgroud)

但是,您需要找到一种方法将epoch转换为所需的格式,并注意它将阻止脚本执行任何写入(因为它是一个非确定性命令).

更新:从Redis v3.2开始,对于基于效果(而不是基于代码)的脚本,存在新的复制模式.使用此模式时,您实际上可以调用所有随机,非确定性命令.更多信息请访问EVAL文档页面

  • 感谢提到“非确定性命令”——这真的会伤害脚本。我想我会从参数列表中传递日期 (2认同)
  • 这就是**正是**你应该怎么做;) (2认同)

Chr*_*ial 6

这已经在评论中讨论过,但正确的答案应该有一个答案:

当前时间是不确定的,即重复调用时会返回不同的值。这会损害复制。因此,当前时间应作为参数传递到 LUA 脚本中。