如何在python中以5分钟的间隔存储时间戳

时间:2012-03-27 01:47:51

标签: python

我使用python以5分钟的间隔在redis中递增计数器,执行代码的速度非常重要。我将有一个看起来像这样的排序集:

1:30 incr 1:35 incr ...

其中incr是5分钟间隔之间的命中数。

让我们说我是在下午1:32,我希望在1:30到1:35之间将所有的点击放在那个桶中。

天真地,我可以循环浏览一个列表并检查30到35之间的分钟,并放在1:30桶中。有更多的pythonic方法吗?

1 个答案:

答案 0 :(得分:4)

from redis import Redis

r = Redis(db=1)
r.flushdb()
def store(t):
    h, m = map(int, t.split(':'))
    m = m - m % 5
    r.zincrby('tc', '%d:%02d' % (h, m), 1)

store('1:02')
store('1:30')
store('1:32')
store('1:35')

print r.zrange('tc', 0, -1, withscores=True)

输出:

[('1:00', 1.0), ('1:35', 1.0), ('1:30', 2.0)]