Redis Hash统计监控24小时内 和 1小时内数据累加变化总和
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Redis Hash统计监控24小时内 和 1小时内数据累加变化总和,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2007字,纯文字阅读大概需要3分钟。
内容图文
![Redis Hash统计监控24小时内 和 1小时内数据累加变化总和](/upload/InfoBanner/zyjiaocheng/860/ce5c1210ea78419ab278e459071f0500.jpg)
一个小时内分统计数据 按 分钟分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(key, int(minute), inc_value)
else:
# 初始化一小时
hash_value = {}
for x in range(61):
if x == 60:
# 记录当时
hash_value['hour'] = hour
else:
hash_value[x] = 0
RedisUtil.hmset(key, hash_value)
# 对应分钟加1
RedisUtil.hincrby(key, int(minute), inc_value)
RedisUtil.expire(key=key, time=3600)
# 获取所有值
hash_list = RedisUtil.hvals(key)
total_num = 0
for k, v in enumerate(hash_list):
# 去掉day 字段
if k > 0:
total_num += int(v)
return total_num
与分钟类似 , 24小时内分统计数据 按 小时分成24段 + 一个 标识字段 使用了 %Y%m%d。
redis Hash 初始化记录 24小时内每小时的统计数据
判断 是否在同一天, 非同一天内直接hset覆盖掉之前的数据, 如果是同一天内 使用hincrby累加对应小时的数量
通过 hvals 计算总和
def get_report_num_by_day(key, inc_value=1):
d, h = time.strftime("%Y%m%d-%H").split("-")
hash_key = RedisUtil.exists(name=key)
# 是否存在
if hash_key:
# 是否为当天
if d == RedisUtil.hget(key, 'day'):
# 对应小时+1
RedisUtil.hincrby(key, int(h), inc_value)
else:
# 非当天直接重新设置小时为+1
RedisUtil.hset(key, int(h), inc_value)
else:
# 初始化24小时
hash_value = {}
for x in range(25):
if x == 24:
# 记录当日
hash_value['day'] = d
else:
hash_value[x] = 0
RedisUtil.hmset(key, hash_value)
# 对应小时加1
RedisUtil.hincrby(key, int(h), inc_value)
RedisUtil.expire(key=key, time=86400)
# 获取所有值
hash_list = RedisUtil.hvals(key)
total_num = 0
for k, v in enumerate(hash_list):
# 去掉day 字段
if k > 0:
total_num += int(v)
return total_num
内容总结
以上是互联网集市为您收集整理的Redis Hash统计监控24小时内 和 1小时内数据累加变化总和全部内容,希望文章能够帮你解决Redis Hash统计监控24小时内 和 1小时内数据累加变化总和所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。