redis学习笔记之-(1)-bitmap用法之1-统计全部用户1年的登陆天数

1. bitmap使用1:统计全部用户1年的登陆天数

命令一览: setbit getbit bitcountjava

需求1: 电商网站统计全部用户一年的登陆天数, 好比用户id为, 咱们想要统计用户每一年的登陆天数, 好比以下
用户名 用户id 本年登陆天数
张三 001 100
李四 002 200
王五 003 365

使用redis的bitmap来实现的话, 能够这么弄: redis

setbit key offset valueshell

setbit ulogin:001 20200101 1网站

  • ulogin:001是bitmap的key
  • 20200101是offset, 记录某一天的登陆值的key标识
  • 当天登陆了记为1, 没有记为0;

查询某天:
getbit key offsetcode

统计全部该key的1的值的个数(也就是登陆天数)
bitcount keyget

1.1 记录某天登陆操做-setbit

127.0.0.1:6379> setbit ulogin:001 20200101 1
(integer) 0
127.0.0.1:6379> setbit ulogin:001 20200102 1
(integer) 0
127.0.0.1:6379> setbit ulogin:001 20200103 1
(integer) 0
127.0.0.1:6379> setbit ulogin:001 20200104 0
(integer) 0

1.2 查询某天登陆了没有-getbit

127.0.0.1:6379> getbit ulogin:001 20200102
(integer) 1

1.3 查询用户总共登陆了几天-bitcount

127.0.0.1:6379> bitcount ulogin:001
(integer) 3

若是要统计全部的用户的登陆天数, 咱们平时天天记录:it

127.0.0.1:6379> setbit ulogin:002 20200101 1
(integer) 0
127.0.0.1:6379> setbit ulogin:003 20200102 1
(integer) 0

1.4 统计全部用户登陆天数

若是要统计全部用户, 在java中利用前缀的命名规则ulogin: 在一个for循环中遍历全部的id列表便可, 把调用redis的结果放入一个集合中便可!!for循环

相关文章
相关标签/搜索