*Redis TIME 命令

TIME 用于返回当前 Redis 服务器的时间戳。


*语法

TIME

*参数说明

无参数。


*返回值

  • Array:包含两个元素的数组
    • 第一个元素:当前 Unix 时间戳(秒)
    • 第二个元素:当前秒内的微秒数

*时间复杂度

O(1)

*

*示例

*基本用法

> TIME
1) "1717480000"
2) "123456"

*获取秒级时间戳

> TIME
1) "1717480000"
2) "789012"

*组合使用计算毫秒时间

> EVAL "local t = redis.call('TIME'); return tonumber(t[1])*1000 + math.floor(tonumber(t[2])/1000)" 0
1717480000123

*常见错误

错误 原因 解决
ERR wrong number of arguments 传入了参数 TIME 命令不需要参数

*最佳实践

  • 场景:需要服务器端统一时间戳的分布式系统
  • 避免客户端时钟不同步问题
  • Lua 脚本中调用 TIME 可获取原子时间点

*FAQ

Q1: TIME 和系统 date 命令的时间一致吗? A: 是的,TIME 返回的是 Redis 服务器所在系统的当前时间。

Q2: 为什么返回微秒而不是毫秒? A: 微秒提供更高精度,应用层可自行转换为毫秒。

Q3: 在集群模式下 TIME 返回哪个节点的时间? A: 返回执行该命令的节点本地时间,各节点可能略有差异。