面试题答案
一键面试实现思路
- 由于Redis的BITMAP每个bit位对应一个用户在某一天的登录状态,一周有7天,所以会有7个BITMAP。
- 分别对这7个BITMAP使用
BITCOUNT
命令,BITCOUNT
命令用于统计指定范围内值为1的bit位数量,也就是登录用户数。
代码示例(Python + Redis-py)
import redis
# 连接Redis
r = redis.StrictRedis(host='localhost', port=6379, db=0)
# 假设这7个key分别对应过去一周的7天
keys = ['day1_bitmap', 'day2_bitmap', 'day3_bitmap', 'day4_bitmap', 'day5_bitmap', 'day6_bitmap', 'day7_bitmap']
for key in keys:
login_count = r.bitcount(key)
print(f"当天登录用户数: {login_count}")