分享更有价值
被信任是一种快乐

Redis中怎么用setbit统计活跃用户

文章页正文上

这篇文章主要讲解了“Redis中怎么用setbit统计活跃用户”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis中怎么用setbit统计活跃用户”吧!首先,我们来看一下需求:网站统计用户登录的次数,具体如下:网站有1亿个用户,有经常登录的,也有不经常登录的如何来记录用户的登录信息如何查询活跃用户:比如:一周内,登录3次的我们使用传统的关系型数据库(比如:Oracle)来存储这样的数据每周产生7亿条数据,对于任何一个关系型数据库来说,都是非常不好维护的,对性能也会有很大的影响。Redis支持对String类型的value进行基于二进制位的置位操作。通过将一个用户的id对应value上的一位,通过对活跃用户对应的位进行置位,就能够用一个value记录所有活跃用户的信息。如下图所未,下图中的bitmap有9个位被置为1,表示这9个位上对应的用户是今天的活跃用户。其中第15位表示uid为15的用户,第一位表示uid为0的用户。(如果你的uid不是从1开始的,比如从100000开始,实际上你也可以相应的用uid减去初始值来表示其位数,比如1000000用户对应到bitmap的第一位)具体的免费主机域名代码类似下面这样:
这样一次记录的复杂度是O(1),在Redis中速度非常快。下面代码是在Redis CLI中执行的Demo演示,比如:用户ID为100的用户在星期一登录了网站,我们就通过setbit操作,把星期一对应的100位的值置为1,而我们通过每天换用一个不同的key来将每天的活跃用户状态记录分开存。并且可以通过一些与或运算计算出N天活跃用户,和连接N天活跃用户这样的统计数据。
如下图,第一行表示星期一的活跃用户情况,第二行表示周二的,以此类推。为样我们通过对N天的活跃用户记录取并集操作,就能得出在N天内活跃过的用户列表。感谢各位的阅读,以上就是“Redis中怎么用setbit统计活跃用户”的内容了,经过本文的学习后,相信大家对Redis中怎么用setbit统计活跃用户这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是云技术,小编将为大家推送更多相关知识点的文章,欢迎关注!免费主机域名

相关推荐: MySQL新建用户怎么授权、删除用户和修改密码

这篇文章主要讲解了“MySQL新建用户怎么授权、删除用户和修改密码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小免费主机域名编的思路慢慢深入,一起来研究和学习“MySQL新建用户怎么授权、删除用户和修改密码”吧! 测试环境:WIN32 mysql…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册