• redis 二元数据存储、查询、统计、运算


     ads:

    关注以下公众号查看更多文章

    业务中有大量的二元数据需要存储,比如是否签到、是否被封号等,也有对二元数据的查询统计需求,比如累计签到多少天、连续签到多少天等

    需求1 统计单个用户累计签到次数

    用户id 3000 在 2020年8月3号签到

    SETBIT uid:sign:3000:202008 2 1 

    用户id 3000 在 2020年8月2号签到

    SETBIT uid:sign:3000:202008 1 1

    用户id 3001 在 2020年8月2号签到

    SETBIT uid:sign:3001:202008 1 1

    确认用户 3000 是否在 2020年8月3号签到

    GETBIT uid:sign:3000:202008 2 

    统计用户 3000 在 2020年8月签到天数

    BITCOUNT uid:sign:3000:202008

    需求2 统计单个用户一段周期内是否连续签到

    用户id 3000 在 2020年8月3号签到

    SETBIT uid:sign:20200803 3000 1 

    用户id 3000 在 2020年8月2号签到

    SETBIT uid:sign:20200802 3000 1 

    用户id 3001 在 2020年8月2号签到

    SETBIT uid:sign:20200802 3001 1 

    确认用户 3000 是否在 2020年8月3号签到

    GETBIT uid:sign:20200803 3000 

    确认用户 3000 在 2020年8月2号到3号是否连续签到

    先对两天求与,保存到dest这个bit中

    BITOP AND dest uid:sign:20200803 uid:sign:20200802

    从dest这个bit查询用户是否为连续签到

    GETBIT dest 3000

  • 相关阅读:
    TCP三次握手四次挥手(幽默版)
    【Redis】6.Feed流
    route/router区别/参数
    浅谈分散式存储项目MEMO
    Leetcode 541:反转字符串II
    el-upload上传附件限制大小
    idea插件推荐——Bito提高编码效率
    bootstrap的相关知识点
    安徽校园招聘黄金时间
    一篇博文,带你入门数据库SQL语言
  • 原文地址:https://blog.csdn.net/fanghailiang2016/article/details/128081919