当前位置: 首页 > news >正文

wordpress 极简杂志网站seo优化徐州百度网络

wordpress 极简杂志,网站seo优化徐州百度网络,需要手机端网站建设的企业,临安市规划建设局网站文章目录 描述常用命令及解析常用命令解析 应用场景统计不确定时间周期内用户登录情况思路分析实现 统计某一特定时间内活跃用户(登录一次即算活跃)的数量思路分析与实现 描述 bitmap是redis封装的用于针对位(bit)的操作,其特点是计算效率高,占用空间少,常被用来统计…

文章目录

  • 描述
  • 常用命令及解析
    • 常用命令
    • 解析
  • 应用场景
    • 统计不确定时间周期内用户登录情况
      • 思路分析
      • 实现
    • 统计某一特定时间内活跃用户(登录一次即算活跃)的数量
      • 思路分析与实现

描述

  bitmap是redis封装的用于针对位(bit)的操作,其特点是计算效率高,占用空间少,常被用来统计用户签到、登录等场景

常用命令及解析

常用命令

  • setbit key offset value
      给key在指定位索引位置上(offset)设置一个value,因为是bit所以value只能为0或1;如setbit zhangsan 2 1表示在位索引的2号位设置为1,对应的二进制位应该是0010 0000
  • getbit key offset
      获取key在指定位索引位置上对应的二进制值,要么是0要么是1
  • bitcount key [start end]
      统计key在给定的字节索引范围内1出现的次数;如bitcount zhangsan 1 2表示统计张三在字节所以1-2之间1出现的次数
  • bitpos key bit [start] [end]
      统计key对应的二进制串中指定的bit(1或0)在指定字节索引下标内第一次出现的位置,没有出现返回-1;
  • bitop operation destkey key [key …]
      将两个或多个key的二进制位进行或、与的操作然后赋值给指定的新key(destkey);如bitop and k3 k1 k2表示将k1和k2按与操作后赋值给k3

解析

  针对上面的常用命令,如果是初识的话有可能会比较蒙蔽,下面结合我画的图来进行解析;首先需要明确的一点是上文提到的offset(偏移量)指的是bit(位)的索引位置,一个字节等于8个bit,bit的索引下标从0开始;然后命令里的start end这些表示的是字节索引位置,如[0,2]表示字节的0到2的区间,相当于3个字节对应bit位置的0-24,下面上图:
image
针对上图我们再跑一遍上面的常用命令进行解析:

  • setbit zhangsan 3 1 表示将bit下标为3的位置设置为1,二进制表示如下:0001 0000
  • getbit zhangsan 3 表示获取bit下标为3位置上的二进制值为1,如果getbit zhangsan 2则值为0
  • bitcount zhangsan 0 1 表示获取字节下标0-1(相当于bit下标的0-15)之间位置内1出现的次数,这里结果为1
  • bitpos zhangsan 1 0 1 表示获取字节下标0-1(相当于bit下标的0-15)之间位置内1第一次出现的次数,因为上面设置了zhangsan对应的二进制为0001 0000,所以这里结果应为3
  • bitop operation destkey key [key …] 这是bitop前再设置一个key,setbit lisi 2 1,然后执行bitop or k3 zhangsan lisi,这时k3的值因为zhangsan/lisi二进制or运算后的值,应为0011 0000;

应用场景

统计不确定时间周期内用户登录情况

  比方说需要统计20220101-20220107区间内用户登录的次数

思路分析

  针对用户量不是那么多且登录不频繁的非互联网型的应用,利用mysql维护一张用户登录的日志表就能解决问题,但是假设用户量过大且用户登录次数频繁的情况下,mysql就并不是最优解了;这时可以结合使用bitmap来实现这一需求

实现

  在redis里维护一个key为用户id的bitmap,用户每次登录时setbit userId offset 1;需要注意的是这里的offset需要进行计算映射,将bit的下标与一年的365天对应上;统计的时候根据不同需求有好几种实现;
1、bitcount userId 0 -1 统计用户一年登录的次数
2、根据具体查询区间循环getbit userId offset;如查询20220101-20220107区间内用户登录的次数则先找到20220101-10对应的偏移量接着循环getbit,判断结果,如果是1则给登录天数加1即可

统计某一特定时间内活跃用户(登录一次即算活跃)的数量

思路分析与实现

  将日期作为key,offset映射成不同的用户id,当不同的用户登录时setbit 20210101 offset,如:
setbit 20220101 0 1
setbit 20220102 1 1
setbit 20220102 0 1
setbit 20220102 2 1
以日期为key,将用户id与位索引提前做好映射,比方说0位表示张三1位表示李四2位表示王五,当张三登录时在0位设置1,李四登录在1位设置1,王五登录在2位设置1,统计指定时间时将指定时间对应的key做bitop操作即可,如下:bitop or k3 20220101 20220102 上面命令表示将20220101和02这两个key做or操作,因为二进制or操作是有1即是1,最后统计k3里1出现的次数即得出20210101到02之间活跃用户数为3:bitcount k3 0 -1

http://www.hengruixuexiao.com/news/41722.html

相关文章:

  • 网站建设报价多少六安seo
  • 网站系统优点关键词排名优化软件价格
  • 网站目录 index淘宝引流推广怎么做
  • 广东南方通信建设有限公司官方网站公司网站设计报价
  • 网页设计师做什么大连百度网站排名优化
  • 学做投资网站好百度一下的网址
  • 网站开发算前端吗济宁百度推广价格
  • 网站后台是怎么做的百度热线电话
  • 客服管理系统萧山市seo关键词排名
  • 服装设计网站模板下载seo搜索优化是什么呢
  • 河北省建设部网站sem竞价托管多少钱
  • 关于传媒的网站模板搭建网站平台需要多少钱
  • 太原模板网站建站地推拉新接单平台
  • html5手机网站整套模板广告推广平台代理
  • 网站劫持必须做系统嘛销售外包
  • wordpress文章链接怎么改windows系统优化软件
  • 涟源市住房与城乡建设局网站百度竞价开户联系方式
  • 怎么免费把自己在dreamweaver做的网站放到网上去宁波优化网站厂家
  • php除了做网站如何在百度上建立网站
  • 贵阳 网站建设软文推广网站
  • 网站后台管理怎么做网站的排名优化怎么做
  • wap建站php源码哪家公司做seo
  • 最权威的品牌排行榜网站腾讯企点官网
  • 用手机建网站网站seo百度百科
  • 手游网站做cpc还是cpm广告号seo咨询解决方案
  • mvc 门户网站开发框架重庆网站制作公司哪家好
  • 响应式网站滑动网络营销是什么专业类别
  • 开发公司工程部经理岗位职责seo优化技巧
  • 在线教学视频网站建设省好多会员app
  • 博彩网站开发教程seo网站快速排名软件