面试题答案
一键面试- 存储原理:
- Redis Bitmap本质上是一个由二进制位组成的数组,通过偏移量来定位具体的位。在这个场景中,可以将每个用户看作一个独立的标识,以用户ID作为偏移量基础。
- 对于每个特征,例如“是否浏览过商品A”,可以创建一个独立的Bitmap。
- 关键Redis命令示例:
- 设置用户特征:
- 假设用户ID为
user1
(假设其对应的偏移量为100,实际应用中需要有合理的ID到偏移量的映射),表示用户user1
浏览过商品A。使用SETBIT
命令:
这里SETBIT feature:viewed_product_A 100 1
feature:viewed_product_A
是Bitmap的键名,100是偏移量,1表示该用户浏览过商品A(如果是0则表示未浏览)。
- 假设用户ID为
- 获取用户特征:
- 使用
GETBIT
命令获取用户user1
是否浏览过商品A:
命令返回0或1,0表示未浏览,1表示浏览过。GETBIT feature:viewed_product_A 100
- 使用
- 统计具有某特征的用户数量:
- 使用
BITCOUNT
命令统计浏览过商品A的用户数量:
该命令返回浏览过商品A的用户数量。BITCOUNT feature:viewed_product_A
- 使用
- 设置用户特征: