首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

巧用 Redis Hyperloglog,轻松统计 UV 数据

但是,如果实时数据的量达到了上百万条,这可能会很昂贵。你可能会想到另一种方法,就是将用户保存在一个 Redis set 集合中,因为 set 天然具备去重的功能。...我们都知道,Redis 有好几种数据结构,比如String、BitMap、Set、Sorted Set等。...Redis Hyperloglog 操作 要进行 Redis Hyperloglog 的操作,我们可以使用以下三个命令: •PFADD•PFCOUNT•PFMERGE 我们用一个实际的例子来解释这些命令...201909281824 201909281825 (integer) 6 由此看来,统计最近一小时我们需要 60 个键,统计最近一天需要 1440 个键,最近 7 天则需要 10080 个键。...的 HyperLoglog 进行数据统计,比如我们要统计从此刻开始往前推一小时、一天、一周的 UV。

1.7K10

PHP数据统计分析

前段时间的主要工作是开发统计系统, 统计公司产品的安装量和回访量,统计数据则由客户端调用C接口写入mysql数据库,即我们只需要分析客户端写入的原始数据即可。...下面是对这个项目的一个总结: 系统评估 1、预估当前每天的回访量有大几百万,随着其它产品的不断推广, 要统计数据可能越来越多。 2、统计数据有比较强的约束关系。...所以,如果要出按小时统计数据,则必须把前一个小时数据处理完之后才可以处理后面的数据;前一天的数据处理完之后才可以处理后一天的数据。 3、团队中都擅长的是PHP。...数据更新完之后即可根据该数据出报表,因为统计的字段8个左右,所以累计到一定时间之后,这个表的数据也将会很多,前台不适合直接从这里取报表数据。 5、其他报表。...历史数据处理 有个产品需要对历史数据进行重新统计,历史数据有1亿多。

1.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

redis in action》Redis队列

使用redis任何事情都是基于redis提供的数据结构,那么消息队列有哪几种类型?之前rabbitmq咋说有简单的队列、优先级队列、延迟队列等等。但是那时候咋也没说栈这东西。...那么redis如何这些事,根据之前的学习。肯定使用list了。 Redis队列(先进先出) 队列中我们说redis提供了很多操作队列的方法。可以从左边添加、右边添加、左边获取、右边获取等等等。...那么我们就使用命令RPUSH进行添加,而获取的时候我们就采用命令LPOP,但是list中可能没有数据,这时候使用LPOP就会返回nil,所以我们可以采用BLPOP命令进行阻塞式的数据获取。...但是如果异步处理的话,也还行。...Riedis延迟队列(指定时间执行) Redis延迟队列其实还是用zset去做,我们用当前的时间+需要延迟的时间作为zset的score,然后我们按照score的增序来获取对应的元素,通过判断时间是否小于当前时间然后执行相关的动作

43510

一个linux帮你高效数据统计

wc(world count)是一个统计文件字词,字节,行数的命令,它可以帮我们非常方便的统计以上信息。 主要参数 常见参数如下: -c 统计字节数。 -l 统计行数。 -m 统计字符数。...字节数是数据占用的空间大小,而一个字符可能占多个字节,例如,UTF-8编码中,一个英文字母就是一个字符,占用空间一个字节,而一个中文,则占用3字节大小。...统计命令执行结果数量 实际上个人认为,最常用的还是-l参数,它用来统计文件或标准输出有多少行,那么实际上就可以用来很多统计的事情了。...grep |wc -l 23 类似这样的用法还有很多,只要你想统计都可以。...总结 wc命令可用于统计行数,字节数和字符数等,而用于统计命令执行结果的数量的时候非常有效。

59810

数据分析,需要懂多少统计

很多小伙伴会问:数据分析,需要懂多少统计学知识?今天简单跟大家分享一下。 一、统计学是个啥 统计学是个历史悠久的学科,有着300年以上历史。...三、初级数据分析师,要掌握哪些 第一部分描述性统计是人人必会的。因为这是数据分析的最基础知识和基本概念,不管做什么工作都要用到。而且这一部分概念简单,很容易掌握。...学这一部分,最好的办法是对着章节后边的习题。做对题,通过面试是第一目标。 四、中级数据分析师,要掌握哪些 第三部分知识,是中级以后数据分析师要掌握的。因为这一部分,讲的是用抽样方法统计推断。...比如统计销售、运营、产品情况,都是全量统计,很少抽样。只有特定场景需要。 最典型的就是质量检测。比如检查产品的使用寿命、耐用程度、物理强度等指标,就一定得对产品破坏性检测。...因为时间序列预测使用范围非常广,特别适合领导扔几个数据过来,让我们“做个预测看看”的场景。至于其他方法,建议找个现成的工具(比如SPSS),把数据怼进去,然后对着输出参数解读。

1.1K00

初学乍练redis:使用redis-migrate-toolredis在线数据迁移

当一个全新的redis集群已经搭建完成后,需要将原来单实例redis中的数据在线迁移到redis集群中,并且在迁移过程不能影响现有服务,具体需求如下: 在线数据迁移,不能停库。...二、关于redis-migrate-tool Redis-Migrate-Tool(RMT),是唯品会开源的redis数据迁移工具,主要用于异构redis集群间的数据在线迁移,即数据迁移过程中源集群仍可以正常接受业务读写请求...目标可以是:单独的redis实例,twemproxy集群,redis cluster,rdb文件。 RMT启动后模拟成redis slave,请求master的全量数据和增量数据。...三、实验 我们建立一个6实例redis集群和一个单实例redis,向单实例redis插入测试数据,然后用redis-migrate-tool将数据迁移至集群中。...如果是同构集群,配置发布就可以。如果没有重启发布,等待源集群没有连接之后,可以关闭REDIS-MIGRATE-TOOL进程(kill或在redis-cli shutdown)。

1.6K30

如何统计Redis中各种数据的大小

UPDATED:如果版本够,记得试试 redis-cli 的 bigkeys 选项 如果 MySQL 数据库比较大的话,我们很容易就能查出是哪些表占用的空间;不过如果 Redis 内存比较大的话,我们就不太容易查出是哪些...有一些工具能够提供必要的帮助,比如 redis-rdb-tools 可以直接分析 RDB 文件来生成报告,可惜它不能百分百实现我的需求,而我也不想在它的基础上二次开发。...php $patterns = array( 'foo:.+', 'bar:.+', '.+', ); $redis = new Redis(); $redis->setOption...(Redis::OPT_SCAN, Redis::SCAN_RETRY); $result = array_fill_keys($patterns, 0); while ($keys = $redis...> 当然,前提是你需要提前总结出可能的键模式,简单但不严谨的方法是 MONITOR: shell> /path/to/redis-cli monitor | awk -F '"' '$2

91830

Redis基础—了解Redis是如何数据持久化的

之前的文章介绍了Redis的简单数据结构的相关使用和底层原理,这篇文章我们就来聊一下Redis应该如何保证高可用。...Redis有两种方式来实现数据的持久化,分别是RDB(Redis Database)和AOF(Append Only File),你可以先简单的把RDB理解为某个时刻的Redis内存中的数据快照,而AOF...实际上在调用save命令时,Redis会判断bgsave是否正在执行,如果正在执行服务器就不能再调用底层的rdbsave函数了,这样可以避免两个命令之间出现资源竞争的情况。...而且,如果内存的数据量很大的话,RDB即使是通过fork子进程来的,但是也需要占用到机器的CPU资源,也可能会发生很多的也异常中断,也可能造成整个Redis停止响应几百毫秒。...首先我们得有个概念,那就是RDB是对当前Redis Server中的数据快照,而AOF是对变更指令的记录(所有的获取操作不会记录,因为对当前的Redis数据没有改变)。

30010

Excel 统计学分析

数据分析插件 1、进入 Excel 点击选项 2、在加载项中点击转到 3、打开分析工具库扩展 4、选择数据标签页,点击数据分析 5、选择适合数据的分析方法,这里以方差分析为例 6、配置分析需要的选项...在输入区域输入对应的数据, 利用鼠标指针框选带有样本分组标志的数据集,比如下图这样 选中标志位于第一行,用于标记分组名称 α(A)是显著性水平,0.05代表95%的可信度 选中输出区域...,将输出结果打印在Excel中,或者可以选新建工具表组 7、最后,生成对应的分析结果 表里的统计值 组:分组名称 观测数:每组样本数量 求和:总值 平均:平均值 方差:方差值 SS:平方和 df...:自由度,用于其他统计量计算 MS:均方,由于各误差平方和的大小与观测值的多少有关,为了消除观测值多少对误差平方和大小的影响,需要将其平均。...F:检验统计量,用于假设检验计算的统计量 P value:显著性水平,估计总体参数落在某一区间内,可能犯错误的概率 F crit:临界值,在相应显著水平下的F临界值 查看组间有无差异 代表两组数据有差异

1.8K20

使用redis缓存

redis常本用来作为缓存服务器。缓存的好处是减少服务器的压力,数据查询速度快。解决数据响应慢的问题。 添加缓存:只用redis的Hash数据类型添加缓存。...例如:需要在查询的业务功能中,添加缓存 1.首先需要在执行正常的业务逻辑之前(查询数据库之前),查询缓存,如果缓存中没有需要的数据,查询数据库 为了防止添加缓存出错,影响正常业务代码的执行,将添加缓存的代码放置到...2.完成数据库的查询操作,查询完成之后需要将查询的数据添加到缓存中。...// 操作完成后需要将查询的内容添加到缓存中,因为添加缓存的过程可能出错,所以使用try catch将异常抛出即可 // categoryId+""将Long类型的数据转换成...所谓缓存同步,也就是在数据库的增删改操作完成之后,清除对应的缓存即可,下一次执行查询操作时,重新添加新的缓存,这样就很好的实现了缓存同步的问题。

1.5K70

使用Redis统计活跃用户

统计活跃用户这个案例非常经典,也是我当时学习redis时,接触到的第一个让我眼睛一亮的使用方式 场景 用户登录后需要记录,以便以后进行登录统计 统计需求主要有: (1)今天的登录用户数 (2)...3天内都登录过的用户 (3)7天内登录过的用户 常规解决方案 如果不用redis,通常做法是在用户登录时记录日志,或者在数据库中添加一条登录记录 然后按照需求进行定时统计 redis解决方案...redis的 bit 操作非常适合处理这个场景 因为bit的值为 0或1,用户是否登录也可以用 0或1 来表示 我们把每天的用户登录信息记录到一个key中,值中的每个offset的值就是用户登录的标识...key1 key2 就是对 key1 key2 各位进行 or 运算后赋值给 ret,结果为 0111 (3)bit值为1的数量 > bitcount key 通过bit操作就可以实现用户统计的需求了...> bitcount userlogin:20160118 (3)统计3天内都登录过的用户 “都登录过”是要取得bit值都为1的,通过 and 计算获取 > bitop or ret userlogin

1.5K60

Redis HyperLogLog:数据统计的轻量级解决方案

引言 在现代数据驱动的应用中,Redis 以其出色的性能和灵活性成为了不可或缺的工具。 特别是在统计大量数据时,传统的计数方法往往既耗时又占用大量存储空间。...这次,阿七将介绍一种名为 HyperLogLog 的算法,它在 Redis 中的实现让大规模数据统计变得简单且高效。...这种方法特别适用于需要统计巨大数据集中唯一元素数量的场景。 2、HyperLogLog 与传统方法对比 与传统的精确计数方法相比,HyperLogLog 在处理大数据集时占用极少的内存。...Redis 中的 HyperLogLog 1、Redis 与 HyperLogLog 在 Redis 中,HyperLogLog 提供了一些基本命令来处理这种类型的数据结构。...要使用 Redis HyperLogLog 来统计每天展示的 UV,并根据用户手机的设备 UID 进行跟踪,你可以按照以下步骤实现: 设置 Redis HyperLogLog: 对于每个用户访问,你可以使用

12210

spring+redis的集成,redis缓存

1.前言        Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。...例如Memcache,Redis等。将一些频繁使用的数据放入缓存读取,大大降低了数据库的负担。提升了系统的性能。      ...有于Memcached,对于缓存对象大小有要求,单个对象不得大于1MB,且不支持复杂的数据类型,譬如SET等。因此现在Redis用的越来越多。 2.引入依赖 <!...超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制。 redis.maxIdle=300 #连接池的最大数据库连接数。...redis客户端查看缓存数据: ? 总结:   在redis缓存的时候最好是每个缓存的生命周期不固定,也就是分散的使缓存失效。可以设置有效期为3-9小时。

91450

Redis(十):Redis特殊类型之Hyperloglog基数统计

redis 2.8.9版本就更新了Hyperloglog数据结构! Hyperloglog:基数统计算法!0.81%的错误率,不过统计大量数据可以忽略!...在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。...1、什么是基数 比如数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8}, 基数(不重复元素)为5。...2、Hyperloglog简介 Redis Hyperloglog 基数统计的算法!...比如在CSDN中一位用户访问多次,但是统计中依旧算作一个人 传统的方式是用set集合把每个人的id保存下来,然后统计元素数量,但是太费内存了,而目标是统计数量,如果还要浪费大量的空间,就很不划算!

22230
领券