一个小时内分统计数据 按 分钟分60段 + 一个 标识字段 使用了 %Y%m%d%H。
redis Hash 初始化记录 一小时内每分钟的统计数据
判断 是否在同个小时, 非同个小时内直接hset覆盖掉之前的数据, 如果是同个小时内 使用hincrby累加对应分钟的数量
通过 hvals 计算总和
"""
key : redis key
inc_value : 累加的数量
"""
def get_report_num_by_hour(key, inc_value):
hour, minute = time.strftime("%Y%m%d%H-%M").split("-")
hash_key = RedisUtil.exists(name=key)
# 是否存在
if hash_key:
# 是否为同个小时内
if hour == RedisUtil.hget(key, 'hour'):
# 对应分钟 累加对应的数量
RedisUtil.hincrby(key, int(minute), inc_value)
else:
# 非同个小时直接重新设置小时为新的数量
RedisUtil.hset