Bitmap
-
用户签到活动
假设举行一个连续登录(根据实际业务来判断哪些行为属于连续登录)7天领奖品活动,用户id:k1_7days_active
127.0.0.1:6379> setbit k1_7days_active 1(第一天) 1 (integer) 0 127.0.0.1:6379> setbit k1_7days_active 2(第二天) 1 (integer) 0 127.0.0.1:6379> setbit k1_7days_active 3(第三天) 1 (integer) 0 127.0.0.1:6379> setbit k1_7days_active 4(第四天) 1 (integer) 0 127.0.0.1:6379> setbit k1_7days_active 5(第五天) 1 (integer) 0 127.0.0.1:6379> setbit k1_7days_active 6(第六天) 1 (integer) 0 127.0.0.1:6379> setbit k1_7days_active 7(第七天) 1 (integer) 0 127.0.0.1:6379> bitcount k1_7days_active (integer) 7假设举行一个联系登录7天领奖品活动,用户id:k2_7days_active
127.0.0.1:6379> 127.0.0.1:6379> setbit k2_7days_active 1 1 (integer) 0 127.0.0.1:6379> setbit k2_7days_active 2 1 (integer) 0 这里缺少第三天 127.0.0.1:6379> setbit k2_7days_active 4 1 (integer) 0 127.0.0.1:6379> setbit k2_7days_active 5 1 (integer) 0 127.0.0.1:6379> setbit k2_7days_active 6 1 (integer) 0 127.0.0.1:6379> setbit k2_7days_active 7 1 (integer) 0 127.0.0.1:6379> bitcount k2_7days_active (integer) 6 -
统计某个时间区间范围内活跃用户
假设用户id为长整形
用户1:12345
用户2:23456
用户3:34567
//12345 20200201~20200205 127.0.0.1:6379> setbit 20200201 12345 1 (integer) 0 127.0.0.1:6379> setbit 20200202 12345 1 (integer) 0 127.0.0.1:6379> setbit 20200203 12345 1 (integer) 0 127.0.0.1:6379> setbit 20200204 12345 1 (integer) 0 127.0.0.1:6379> setbit 20200205 12345 1 //23456 20200201 20200202 20200205 127.0.0.1:6379> setbit 20200201 23456 1 (integer) 0 127.0.0.1:6379> setbit 20200202 23456 1 (integer) 0 127.0.0.1:6379> setbit 20200205 23456 1 (integer) 0 //34567 20200201 20200204 20200205 127.0.0.1:6379> setbit 20200201 34567 1 (integer) 0 127.0.0.1:6379> setbit 20200204 34567 1 (integer) 0 127.0.0.1:6379> setbit 20200205 34567 1 (integer) 0 //统计20200201~20200205 都活跃的用户 127.0.0.1:6379> bitop or destkey 20200201 20200202 20200203 20200204 20200205 (integer) 4321 127.0.0.1:6379> bitcount destkey (integer) 3 //统计20200201~20200203 连续活跃的用户 127.0.0.1:6379> bitop and destkey1 20200201 20200202 20200203 (integer) 4321 127.0.0.1:6379> bitcount destkey1 (integer) 1
Geospatial
-
计算地理位置
举例:北京、上海、杭州
127.0.0.1:6379> GEOADD cities 116.404269 39.91582 "beijing" 121.478799 31.235456 "shanghai" (integer) 2 127.0.0.1:6379> ZRANGE cities 0 -1 WITHSCORES 1) "shanghai" 2) "4054803475356102" 3) "beijing" 4) "4069885555377153" 127.0.0.1:6379> GEODIST cities beijing shanghai km "1068.5677" 127.0.0.1:6379> GEOHASH cities shanghai 1) "wtw3sq4ptp0" 127.0.0.1:6379> GEOPOS cities beijing shanghai 1) 1) "116.40426903963088989" 2) "39.91581928642635546" 2) 1) "121.47879928350448608" 2) "31.23545629441388627" 127.0.0.1:6379> GEOADD cities 120.165036 30.278973 hangzhou (integer) 1 127.0.0.1:6379> GEORADIUS cities 120 30 500 km 1) "hangzhou" 2) "shanghai" 127.0.0.1:6379> GEORADIUSBYMEMBER cities shanghai 200 km 1) "hangzhou" 2) "shanghai" 127.0.0.1:6379> ZRANGE cities 0 -1 WITHSCORES 1) "hangzhou" 2) "4054134264615180" 3) "shanghai" 4) "4054803475356102" 5) "beijing" 6) "4069885555377153" 127.0.0.1:6379> ZREM cities hangzhou (integer) 1 127.0.0.1:6379> ZRANGE cities 0 -1 WITHSCORES 1) "shanghai" 2) "4054803475356102" 3) "beijing" 4) "4069885555377153" 127.0.0.1:6379 原文链接:https://blog.csdn.net/zhang197093/article/details/72979038
Hyperloglogs
-
需要在一小时内统计不同的用户
例如 USER:LOGIN:2020020111,我们要统计在 2020 年 02月 01 日上午11 点至 12 点之间发生用户登录操作的非重复用户数
127.0.0.1:6379> pfadd USER:LOGIN:2020020111 A (integer) 1 127.0.0.1:6379> pfadd USER:LOGIN:2020020111 B C D E F (integer) 1 127.0.0.1:6379> pfcount USER:LOGIN:2020020111 (integer) 6
\