在我正在使用redis的Django / Python应用程序中,我这样做:
my_server = redis.Redis(connection_pool=POOL)
updated_at = time.time()
object_hash = "np:"+str(object_id)
sorted_set = "sn:"+str(user_id)
my_server.zadd(sorted_set, object_hash, updated_at)
这是直截了当的。本质上,我正在维护一个排序集,其中包含按更新对象的时间排序的对象。
问题在于,如果我使用redis-cli
来获取zrange sorted_set 0 -1 WITHSCORES
,则score
会显示比updated_at
更早的时间<{} 1}}。
e.g。如果updated_at
被投放1479646405.21
,则redis排序集得分最终为1479628405.497179
(根据redis-cli
的输出)。即落后5个小时。这看起来像是一个时区问题 - 我的位置比UTC早5个小时。
我的问题是:为什么在更新redis服务器时分数会跳回5小时?每当我print
我的应用程序中的updated_at
变量时,我得到了正确的号码。这是一个Linux问题(我的应用程序所在的操作系统是Ubuntu 14.04),如果是这样,你能准确解释可能发生的事情吗?作为初学者,我试图了解这里的动态。谢谢!