【问题标题】:Get current time in Redis获取 Redis 的当前时间
【发布时间】:2013-08-07 17:20:36
【问题描述】:

time 命令给了我一个列表,我无法使用任何普通的列表命令获取其中的第一个元素。

redis 127.0.0.1:6379> 时间

1) “1375802172”

2) “168215”

redis 127.0.0.1:6379> lrange time 0 1

(空列表或集合)

【问题讨论】:

    标签: redis


    【解决方案1】:

    它与 Redis 列表类型完全无关。许多列表操作返回 a multi-bulk reply 的事实并不意味着所有多批量回复都是 Redis 列表。

    TIME 确实返回包含两个值的标准多批量回复。第一个是 Unix 纪元时间,第二个是微秒数。

    如果您只需要其中一个值,则由客户端程序来选择它。

    【讨论】:

    • 我是 Redis 新手,文档说返回了两个项目列表 redis.io/commands/time 是否可以使用 Redis 时间,例如作为键值对的值?
    • 我不确定我是否理解这个问题,但您可以执行第一次往返来获取时间(TIME 命令),然后执行第二次来填充键/值(SET 命令)。跨度>
    • 究竟如何?如何将键或值设置为当前时间?
    • 查看 Redis 文档中的 SET 命令。这很简单。我建议您阅读那里的 Redis 教程之一。
    • @OferZelig 对不起,但我知道如何使用 SET 命令,当我说 new 时,我并不是说我刚开始使用它。 “将 V1 替换为上一个命令中的值” - 你还没有告诉我如何执行此操作,我不想复制并粘贴 V1 值,我需要将 mytime 自动设置为当前时间。感谢您的帮助。
    【解决方案2】:

    前面的答案是正确的,TIME不返回redis列表

    但是,您也许可以使用 lua 脚本实现您所寻求的目标:

    EVAL "return redis.call('TIME')[1]" 0 0
    

    【讨论】:

    • 它返回一个数组回复。来自文档:TIME 命令以两项列表的形式返回当前服务器时间:Unix 时间戳和当前秒内已经过去的微秒数
    猜你喜欢
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    • 2021-12-04
    • 1970-01-01
    • 2012-03-04
    • 2017-07-09
    相关资源
    最近更新 更多