命令一覽: setbit
getbit
bitcount
java
需求1: 電商網站統計全部用戶一年的登陸天數, 好比用戶id爲, 咱們想要統計用戶每一年的登陸天數, 好比以下
用戶名 | 用戶id | 本年登陸天數 |
---|---|---|
張三 | 001 | 100 |
李四 | 002 | 200 |
王五 | 003 | 365 |
使用redis的bitmap來實現的話, 能夠這麼弄: redis
setbit key offset value
shell
setbit ulogin:001 20200101 1網站
查詢某天:getbit key offset
code
統計全部該key的1的值的個數(也就是登陸天數)bitcount key
get
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
127.0.0.1:6379> getbit ulogin:001 20200102 (integer) 1
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
若是要統計全部用戶, 在java中利用前綴的命名規則ulogin: 在一個for循環中遍歷全部的id列表便可, 把調用redis的結果放入一個集合中便可!!for循環