*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: 返回执行该命令的节点本地时间,各节点可能略有差异。