Redis中的bitmap详解

  // 设置在9月19号有下标为100、101、102、103四个用户都登录了系统 start

  127.0.0.1:6379> setbit login_09_19 100 1

  (integer) 0

  127.0.0.1:6379> setbit login_09_19 101 1

  (integer) 0

  127.0.0.1:6379> setbit login_09_19 102 1

  (integer) 0

  127.0.0.1:6379> setbit login_09_19 103 1

  (integer) 0

  // 设置在9月19号有下标为100、101、102、103四个用户都登录了系统 end

  // 设置在9月20号有下标为100、101、102三个用户都登录了系统 start

  127.0.0.1:6379> setbit login_09_20 100 1

  (integer) 0

  127.0.0.1:6379> setbit login_09_20 101 1

  (integer) 0

  127.0.0.1:6379> setbit login_09_20 102 1

  (integer) 0

  // 设置在9月20号有下标为100、101、102三个用户都登录了系统 end

  // 取出9月19号登录系统的有多少人? start

  127.0.0.1:6379> bitcount login_09_19

  (integer) 4

  // 取出9月19号登录系统的有多少人? end

  // 取出9月19号和9月20号连续登录系统的有多少人?start

  127.0.0.1:6379> bitop and login_in_09_19_20:and login_09_19 login_09_20

  (integer) 13

  127.0.0.1:6379> bitcount login_in_09_19_20:and

  (integer) 3

  // 取出9月19号和9月20号连续登录系统的有多少人?end

  // 取出9月19号与9月20号任意一天登录的有多少人?start

  127.0.0.1:6379> bitop or login_in_09_19_20:or login_09_19 login_09_20

  (integer) 13

  127.0.0.1:6379> bitcount login_in_09_19_20:or

  (integer) 4

  // 取出9月19号与9月20号任意一天登录的有多少人?end