用: 位圖法 bit-map Log0721: ‘011001...............0’ ...... log0726 : ‘011001...............0’ Log0727 : ‘0110000.............1’ 1: 記錄用戶登陸: 每天按日期生成一個位圖, 用戶登陸后,把user_id位上的bit值置為1 2: 把1周的位圖 and 計算, 位上為1的,即是連續(xù)登陸的用戶 Redis 127.0.0.1:6379> setbit mon 100000000 0 (integer) 0 redis 127.0.0.1:6379> setbit mon 3 1 (integer) 0 redis 127.0.0.1:6379> setbit mon 5 1 (integer) 0 redis 127.0.0.1:6379> setbit mon 7 1 (integer) 0 redis 127.0.0.1:6379> setbit thur 100000000 0 (integer) 0 redis 127.0.0.1:6379> setbit thur 3 1 (integer) 0 redis 127.0.0.1:6379> setbit thur 5 1 (integer) 0 redis 127.0.0.1:6379> setbit thur 8 1 (integer) 0 redis 127.0.0.1:6379> setbit wen 100000000 0 (integer) 0 redis 127.0.0.1:6379> setbit wen 3 1 (integer) 0 redis 127.0.0.1:6379> setbit wen 4 1 (integer) 0 redis 127.0.0.1:6379> setbit wen 6 1 (integer) 0 redis 127.0.0.1:6379> bitop and res mon feb wen (integer) 12500001 如上例,優(yōu)點(diǎn): 1: 節(jié)約空間, 1億人每天的登陸情況,用1億bit,約1200WByte,約10M 的字符就能表示 2: 計算方便 |
|