广告
返回顶部
首页 > 资讯 > 数据库 >Redis中怎么统计独立用户访问量
  • 401
分享到

Redis中怎么统计独立用户访问量

2024-04-02 19:04:59 401人浏览 泡泡鱼
摘要

Redis中怎么统计独立用户访问量,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。使用Hash哈希是Redis的一种基础数据结构,Redis

Redis中怎么统计独立用户访问量,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

使用Hash

哈希是Redis的一种基础数据结构,Redis底层维护的是一个开散列,会把不同的key映射到哈希表上,如果是遇到关键字冲突,那么就会拉出一个链表出来。

当一个用户访问的时候,如果用户登陆过,那么我们就使用用户的id,如果用户没有登陆过,那么我们也能够前端页面随机生成一个key用来标识用户。

当用户访问的时候,我们可以使用HSET命令,key可以选择URI与对应的日期进行拼凑,field可以使用用户的id或者随机标识,value可以简单设置为1。

当我们要统计某一个网站某一天的访问量的时候,就可以直接使用HLEN来得到最终的结果了。

Redis中怎么统计独立用户访问量

优点:简单,容易实现,查询也是非常方便,数据准确性非常高。

缺点:占用内存过大,。随着key的增多,性能也会下降。小网站还行,拼多多这种数亿PV的网站肯定受不了。

使用Bitset

我们知道,对于一个32位的int,如果我们只用来记录id,那么只能够记录一个用户,但如果我们转成2进制,每位用来表示一个用户,那么我们就能够一口气表示32个用户,空间节省了32倍!

对于有大量数据的场景,如果我们使用bitset,那么可以节省非常多的内存。

对于没有登陆的用户,我们也可以使用哈希算法,把对应的用户标识哈希成一个数字id。bitset非常的节省内存,假设有1亿个用户,也只需要100000000/8/1024/1024约等于12兆内存。

Redis中怎么统计独立用户访问量

Redis已经为我们提供了SETBIT的方法,使用起来非常的方便,我们可以看看下面的例子。

我们在item页面可以不停地使用SETBIT命令,设置用户已经访问了该页面,也可以使用GETBIT的方法查询某个用户是否访问。最后我们通过BITCOUNT可以统计该网页每天的访问数量。

Redis中怎么统计独立用户访问量

优点:占用内存更小,查询方便,可以指定查询某个用户,数据可能略有瑕疵,对于非登陆的用户,可能不同的key映射到同一个id,否则需要维护一个非登陆用户的映射,有额外的开销。

缺点:如果用户非常的稀疏,那么占用的内存可能比方法一更大。

使用概率算法

对于拼多多这种多个页面都可能非常多访问量的网站,如果所需要的数量不用那么准确,可以使用概率算法。

事实上,我们对一个网站的UV的统计,1亿跟1亿零30万其实是差不多的。

在Redis中,已经封装了HyperLogLog算法,他是一种基数评估算法。这种算法的特征,一般都是数据不存具体的值,而是存用来计算概率的一些相关数据。

Redis中怎么统计独立用户访问量

当用户访问网站的时候,我们可以使用PFADD命令,设置对应的命令,最后我们只要通过PFCOUNT就能顺利计算出最终的结果,因为这个只是一个概率算法,所以可能存在0.81%的误差。

优点:占用内存极小,对于一个key,只需要12kb。对于拼多多这种超多用户的特别适用。

缺点:查询指定用户的时候,可能会出错,毕竟存的不是具体的数据。总数也存在一定的误差。

关于Redis中怎么统计独立用户访问量问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网数据库频道了解更多相关知识。

您可能感兴趣的文档:

--结束END--

本文标题: Redis中怎么统计独立用户访问量

本文链接: https://www.lsjlt.com/news/56920.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Redis中怎么统计独立用户访问量
    Redis中怎么统计独立用户访问量,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。使用Hash哈希是Redis的一种基础数据结构,Redis...
    99+
    2022-10-18
  • SpringSession怎么通过Redis统计在线用户数量
    这篇“SpringSession怎么通过Redis统计在线用户数量”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spring...
    99+
    2023-07-05
  • Redis中怎么用setbit统计活跃用户
    这篇文章主要讲解了“Redis中怎么用setbit统计活跃用户”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis中怎么用setbit统计活跃用户”吧!...
    99+
    2022-10-18
  • linux下怎么统计appche站点的IP访问量
    本篇内容介绍了“linux下怎么统计appche站点的IP访问量”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2022-10-19
  • 怎么在SpringBoot中使用Redis统计在线用户信息
    怎么在SpringBoot中使用Redis统计在线用户信息?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。springboot是什么springboot一种全新的...
    99+
    2023-06-14
  • 怎么使用PHP编写访问量计数器
    这篇文章主要讲解了“怎么使用PHP编写访问量计数器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用PHP编写访问量计数器”吧!第一步是在网站根目录中创建一个名为“counter.txt...
    99+
    2023-07-05
  • 怎么在Linux服务器中使用TCPCopy获取用户访问流量
    本篇文章给大家分享的是有关怎么在Linux服务器中使用TCPCopy获取用户访问流量,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 tcpcopy可以当做一种压力测试...
    99+
    2023-06-12
  • 教你怎么用JSP统计网站访问人数
    统计访问人数1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!D...
    99+
    2022-11-12
  • 怎么在Oracle中对用户中表的数据量进行统计
    怎么在Oracle中对用户中表的数据量进行统计?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。要想统计用户下所有表的数据量,可以查看user_t...
    99+
    2022-10-18
  • 怎么在java中使用Lambda访问变量
    今天就跟大家聊聊有关怎么在java中使用Lambda访问变量,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应...
    99+
    2023-06-14
  • 高流量网站采用什么样的方法来解决各页面访问量统计问题
    高流量网站解决各页面访问量统计问题的方法对数据库进行优化,限制访问权限,禁止外部访问链接;对文件进行下载控制;做负载均衡,使用不同主机分流;判断服务器能不能支撑当前访问量;使用浏览统计软件,进行针对性优化。...
    99+
    2022-10-14
  • 服务器中怎么设置用户从网络访问计算机的权限
    在服务器中设置用户从网络访问计算机权限的方法:1.在管理工具中点击“本地安全策略”;2.选择"安全设置→本地策略"文件夹;3.右键拒绝从网络访问这台计算机,选择属性选项;4.点击"添加用户或组"按钮;...
    99+
    2022-10-18
  • 怎么在java中利用继承访问变量
    今天就跟大家聊聊有关怎么在java中利用继承访问变量,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、...
    99+
    2023-06-14
  • 怎么在java中使用lambda访问外部变量
    今天就跟大家聊聊有关怎么在java中使用lambda访问外部变量,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。常用的java框架有哪些1.SpringMVC,Spring Web M...
    99+
    2023-06-14
  • 怎么限制SSH用户访问Linux中指定的目录
    这篇文章主要介绍“怎么限制SSH用户访问Linux中指定的目录”,在日常操作中,相信很多人在怎么限制SSH用户访问Linux中指定的目录问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么限制SSH用户访问Li...
    99+
    2023-06-16
  • 怎么在Java中利用Kafka对客户端进行访问
    这篇文章给大家介绍怎么在Java中利用Kafka对客户端进行访问,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1. maven依赖包<dependency> <groupId>org.apac...
    99+
    2023-05-31
    kafka java ava
  • 如何使用Hive中自定义UDAF函数实现统计区域产品用户访问排名
    这篇文章主要介绍如何使用Hive中自定义UDAF函数实现统计区域产品用户访问排名,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!UDAF实现方法: 1,用户的UDAF必须继承了org.apache.hadoo...
    99+
    2023-06-03
  • Linux中怎么设置用户通过SFTP访问目录的权限
    今天就跟大家聊聊有关Linux中怎么设置用户通过SFTP访问目录的权限,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。查看openssh软件版本,想sftp服务用户只能访问特定的文件目...
    99+
    2023-06-12
  • 怎么在mongodb中添加一个用户并设置访问权限
    在mongodb中添加用户并设置访问权限的方法:1.启动mongodb;2.登录mongodb数据库;3.新建数据库;4.使用createUser命令创建用户并设置权限;具体步骤如下:首先,在命令行中启动mongodb服务;net star...
    99+
    2022-10-09
  • ACL中怎么设置用户访问指定文件/目录的权限
    这篇文章给大家介绍ACL中怎么设置用户访问指定文件/目录的权限,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Linux 对文件和目录有以下默认权限。文件 -> 644 -> -rw-r-r- (所有者有读写...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作