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

网站建设外文文献保定网站建设公司哪家好

网站建设外文文献,保定网站建设公司哪家好,滁州网站开发公司,微信公众号上做网站前言:bitmap 占用空间小,查询效率高,在一些场景中使用 bitmap 是一个很好的选择。 一、bitmap 相关命令 SETBIT - 设置指定位置的比特值,可以设为 1 或 0 例如 SETBIT key 10 1,将在 key 对应的 bitmap 中第10位设置为…

前言:bitmap 占用空间小,查询效率高,在一些场景中使用 bitmap 是一个很好的选择。

一、bitmap 相关命令

SETBIT - 设置指定位置的比特值,可以设为 1 或 0

例如 SETBIT key 10 1,将在 key 对应的 bitmap 中第10位设置为 1。

GETBIT - 获取指定位置的比特值

例如 GETBIT key 10,返回 key 对应 bitmap 的第10位的值。

BITCOUNT - 统计比特值为 1 的数量

例如 BITCOUNT key,返回 key 对应 bitmap 中比特值为 1 的数量。

BITPOS - 查找第一个为指定值的比特位

例如 BITPOS key 1,返回 key 对应 bitmap 中,第一个值为 1 的比特位的位置。

BITFIELD - 一次对多个比特位进行操作

例如 BITFIELD key INCRBY i 5 1,将 key 对应 bitmap 的第 i 个比特位增加 5。

BITOP - 对两个或多个 bitmap 执行位操作(AND/OR/XOR/NOT)并存储结果到另一个 key

例如 BITOP AND destkey key1 key2,将 key1 和 key2 做位与运算,结果存储到 destkey。

注意: bitmap 的第几位值是从 0 开始的,类似于数组下标从 0 开始。

二、bitmap 应用场景

2.1、统计用户是否在线

思路: 用户 id 作为偏移量,通过用户 id 就可以快速查到用户是否在线。

  1. 记录用户 10086 已登录
SETBIT login_status 10086 1
  1. 查询用户 10086 是否登录,返回 1 表示用户 10086 已登录。
GETBIT login_status 10086
  1. 用户 10086 退出,将用户设置为离线。
SETBIT login_status 10086 0

2.2、用户每个月的签到情况

思路: 每个用户每天的签到用 1 个 bit 位表示,一年的签到仅需要 365 个 bit 为。一个月最多只有 31 天,只需要 31 个 bit 位即可。

比如统计用户 10086 在 2023 年 9 月份的打卡记录。

  1. 记录用户 10086 用户在 2023 年 9 月 3 日的签到记录。
SETBIT uid:sign:10086:202309 2 1
  1. 获取用户 10086 在 2023 年 9 月 3 日是否打卡。
GETBIT uid:sign:10086:202309 2
  1. 统计用户 10086 在 2023 年 9 月的打卡次数。
BITCOUNT uid:sign:10086:202309
  1. 获取用户在 2023 年 9 月首次打卡的日期。
BITPOS uid:sign:10086:202309 1

2.3、连续签到用户总数

思路: 将某一个具体的天作为 key(day:20230907),用户 id 作为偏移量,使用 BITOP 命令合并多天的 bitmap。
在这里插入图片描述

  1. 设置用户A、B、C 在上图中的日期签到(假设用户 id 为 1、2、3)
setbit sign:20230901 0 1
setbit sign:20230901 1 1
setbit sign:20230901 2 1
setbit sign:20230902 0 1
setbit sign:20230902 1 1
setbit sign:20230903 1 1
setbit sign:20230903 2 1
  1. 与操作,获取一个新的 bitmap key
bitop and result sign:20230901 sign:20230902 sign:20230903
  1. 计算连续签到的人数
bitcount result

2.4、优惠券每人限领一张

思路:使用优惠券编号作为 bitmap key,用户 id 作为 offset。发优惠券的时候,先获取 bitmap 中用户是否领过优惠券。因为每人限领一张,领过的人直接返回。

  1. 设置用户 100、用户 101 领取过优惠券 a。
setbit coupon:a 100 1
setbit coupon:a 101 1
  1. 查看用户 100 是否领过优惠券 a,返回 1 则代表用户 100 领过优惠券。
getbit coupon:a 100

2.5、统计网站活跃用户

思路: 使用日期作为 key,然后用户 id 为 offset。
假如 20230901 活跃用户情况是: [1,0,1,1,0]。20230902 活跃用户情况是 :[ 1,1,0,1,0 ]

  1. 统计连续两天活跃的用户总数
bitop and dest1 20230901 20230902 
bitcount dest1
  1. 统计 20230901 ~ 20230902 活跃过的用户
bitop or dest2 20201009 20201010 
bitcount dest2

三、参考文档

  • Redis 实战篇:巧用 Bitmap 实现亿级数据统计

  • Redis 中 BitMap 的使用场景

四、最后

我是 xiucai,一位后端开发工程师。

如果你对我感兴趣,请移步我的个人博客,进一步了解。

- 文中如有错误,欢迎在评论区指正,如果这篇文章帮到了你,欢迎点赞和关注😊
- 本文首发于个人博客,未经许可禁止转载💌

http://www.dinnco.com/news/72068.html

相关文章:

  • 网站建设全部流程图营业推广的方式有哪些
  • 旅游网站建设模板下载营销策略分析论文
  • 企业做电商网站360收录提交入口
  • 网站如何做收录排行劳动局免费培训电工
  • 厦门建设企业网站制作网站的最大公司
  • 网站开发推荐一本书海外营销推广服务
  • 仿土巴兔网站建设google 浏览器
  • 做网站的一个月能赚多少钱便宜的seo网络营销推广
  • 网站测试验收谷歌seo 优化
  • 河北搜恒不给做网站竞价托管推广多少钱
  • 自己做网站除了域名还需要什么汕头最好的seo外包
  • 沈阳市网站建设报价网页关键词优化软件
  • 番禺网站设计如何做网站营销
  • 创建网站需要什么技术赣州seo唐三
  • 南阳手机网站制作800元做小程序网站
  • 宁波余姚网站建设济南网站万词优化
  • 自己怎么做商城网站吗优化设计数学
  • 发广告的网站宁波网站建设网站排名优化
  • 企业网站 带后台宁波seo网络优化公司
  • 重庆知名网站制作公司全网络品牌推广
  • 做装修网站价格网站百度收录秒收方法
  • 专做批发的网站如何推广品牌知名度
  • 国外自建站怎么样百度推广怎么收费标准
  • 咨询类网站模板网络销售怎么干
  • 台州网站制作套餐零基础学什么技术好
  • 网站备案多久可以注销乐陵seo外包公司
  • 外贸高端网站建设成都网络推广哪家好
  • WordPress拍卖模板seo外包公司多吗
  • 国内外政府网站建设借鉴优化大师客服
  • 自己想做一个网站怎么做的白百度一下你就知道