在Redis中用Lua获取当前日期和时间

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

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

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

点赞
用户3160475
用户3160475

Redis的Lua沙盒只有一小部分库,并且 os 不在其中。

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

local t = redis.call('TIME')

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

更新:从Redis v3.2开始,脚本有一个新的复制模式,这是一种基于效果而不是基于代码的模式。使用此模式时,您实际上可以调用所有随机的、非确定性的命令。更多信息请参见 EVAL 的文档页面

2015-07-15 14:44:20
用户758345
用户758345

这个问题在评论区已经讨论过,但正确的答案应该是:

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

2018-06-28 11:29:38