背景

记录网页访问的PV与UV,其中PV需要统计每十五分种内的数据,

比如9:00-9:15为一个统计区间,可以获取指定日期指定时间

的片的数据

统一配置

import redis

client = redis.Redis(host="192.168.200.128", port=6379, db=0)

统计PV

import datetime

# 获取时间片

def get_time_interval():

slices = datetime.datetime.now().strftime("%Y%m%d:%H:%M").split(':')

slices[2] = str(int(slices[2]) / 15) # 针对分钟取模

return ':'.join(slices)

# 访问则加1

def increment_page_pv(page_id):

res = client.hincrby(get_time_interval(), page_id, 1)

print(res)

# 获取指定网页指定时间片的PV

def get_page_pv(time_interval, page_id):

return client.hget(time_interval, page_id)

if __name__ == '__main__':

page_id = 'page100'

for i in range(100):

increment_page_pv(page_id)

time_inter = get_time_interval()

print(get_page_pv(time_inter, page_id))

统计UV-使用集合(当数据量特别大时,内存会增加,不合适)

import datetime

def get_today():

return datetime.datetime.now().strftime("%Y%m%d")

def add_uv(account_id):

name = 'uv:{}'.format(get_today())

client.sadd(name, account_id)

def get_uv(date):

name = 'uv:{}'.format(date)

return client.scard(name)

if __name__ == '__main__':

date = get_today()

for i in range(100):

ac_id = 'test_{}'.format(i)

add_uv(ac_id)

print(get_uv(date))

UV统计-使用hyperloglog

import datetime

def get_today():

return datetime.datetime.now().strftime("%Y%m%d")

def add_uv(account_id):

name = 'uv_hyper:{}'.format(get_today())

client.pfadd(name, account_id)

def get_uv(date):

name = 'uv_hyper:{}'.format(date)

return client.pfcount(name)

if __name__ == '__main__':

date = get_today()

for i in range(100):

ac_id = 'test_{}'.format(i)

add_uv(ac_id)

print(get_uv(date))

java redis 实现pv uv_redis实战-记录PV与UV相关推荐

  1. java记录pv,计算500万PV/每天的网站

    Refer to:http://elf8848.iteye.com/blog/967049 你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?服务器每秒要处理多少个请求才能应对? ...

  2. 使用Java读取 “Python写入redis” 的数据踩坑记录

    https://my.oschina.net/u/2338224/blog/3061507 使用Java读取 "Python写入redis" 的数据踩坑记录 https://seg ...

  3. java redis 命令_命令界面:使用Java中的动态API处理Redis

    java redis 命令 Redis是一个数据存储,支持190多个文档化命令和450多个命令排列. 社区积极支持Redis开发: 每个主要的Redis版本都附带新命令. 今年,Redis向第三方供应 ...

  4. redis的入门/原理/实战大总结

    入门 Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构: 字符串(strings).哈希(hashes).列表(lists).集合(sets).有序集合(sorted sets)等 ...

  5. Redis学习笔记(实战篇)(自用)

    Redis学习笔记(实战篇)(自用) 本文根据黑马程序员的课程资料与百度搜索的资料共同整理所得,仅用于学习使用,如有侵权,请联系删除 文章目录 Redis学习笔记(实战篇)(自用) 1.基于Sessi ...

  6. java redis点赞_微信亿级在线点赞系统,用Redis如何实现?

    点赞功能大家都不会陌生,像微信这样的社交产品中都有,但别看功能小,想要做好需要考虑的东西还挺多的,如海量数据的分布式存储.分布式缓存.多 IDC 的数据一致性.访问路由到机房的算法等等. 本文介绍大型 ...

  7. Java高级开发0-1项目实战-青鸟商城-Day03

    作者:田超凡 原创博文,严禁复制转载,仿冒必究 项目计划 第三天: 前台系统搭建 商城首页展示 Cms系统的实现 内容分类管理 内容管理 前台内容动态展示 1. 商城首页展示 系统架构: 页面位置: ...

  8. Web基础之Servlet+JDBC+JSP项目实战记录(一)

    Web基础之Servlet+JDBC+JSP项目实战记录(一) 一.项目说明: 通过前面的学习,我们已经对Servlet有了一定的了解:接下来我们要结合数据库和JSP技术一步一步完成一个小型的动态we ...

  9. (B站云e办)SpringBoot开发项目实战记录(七)(员工管理(分页知识))

    (B站云e办)SpringBoot开发项目实战记录(七) 一.员工管理 1.1 准备工作(分页配置类.日期格式化类) 1. mybatisplus配置类分页 2. 日期格式化类(converter) ...

最新文章

  1. 英国工程巨头遭勒索攻击:运营临时中断 至少损失4亿元
  2. 分享 10 道 Nodejs 进程相关面试题
  3. ASP.NET Core应用的7种依赖注入方式
  4. 腾讯视频网页下载_腾讯视频怎么下载视频
  5. 光源时间_D65光源对色灯箱的操作步骤及作业标准
  6. AngularJs学习日记[8]:$http
  7. Spring Data JPA根据属性名查询
  8. 普林斯顿微积分读本篇二:三角学
  9. 2009 Q.E.D
  10. 卸载了瑞星防火墙 感觉真是爽
  11. 计算机做word的表格,怎么用word做表格,电脑word表格详细制作教程
  12. 精致女生必备6款实用app 这几款你值得拥有
  13. AI视觉传感器作用和应用介绍
  14. 使用Tand自动化您的机器学习工作流程
  15. 超级详细的晶圆厂前世今生,半导体研究史诗级长文
  16. xp系统设置ntp服务器,xp设置ntp服务器地址
  17. tee啥意思_不知道白tee是什么意思你就out啦!白tee潮流穿搭
  18. 【爬虫+多线程+MySQL】网抑云音乐评论爬取
  19. JAVA异常实验:车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品
  20. Nuendo学习之旅——没声音怎么办

热门文章

  1. Revo Uninstaller Pro v3.1.2 测试和评测:
  2. Linux命令退格键变成^H的解决办法
  3. 联想服务器能够上固态硬盘吗,拯救我的台式机:Lenovo 联想 固态硬盘 入手记
  4. 《14天从0到1学Java》第一天之04第一行Java代码
  5. RS-232实现双机通信
  6. 通过直链下载google网盘里的文件
  7. 京东云 linux无法远程,问题解读 | Linux系统SSH无法远程登录时该怎么办?这里有篇小攻...
  8. 深圳学校积分计算机,深圳市龙岗区小学积分入学排行榜
  9. Java获取某个日期前后几天日期
  10. 阿里六面(总结他人事迹)