How to hang timestamp at 5 minute intervals in python

I am using python to increment a counter at 5 minute intervals in redis and the speed of code execution is quite important. I will have a sorted set that looks like this:

1:30 incr 1:35 incr ...


where incr is the number of hits between this 5 minute interval.

Let's say I'm at 13:32 and I want to place all the hits between 1:30 and 1:35 in this bucket.

Naively, I can just scroll through the list and check if the minute is between 30 and 35 and put 1:30 in the bucket. Is there a more pythonic method for doing this?


source to share

1 answer

from redis import Redis

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


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



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




All Articles