1. 使用set key value nx
实现锁
acquire: set key value nx , 根据返回值判断是否加锁成功 release: delete key
2. ID生成器
3. 限速器
信号量
4. 短网址实现
- 给网址一个递增的整数id,然后将这个十进制id转换为36进制数(0到9+26个数字)
- 细节上,可以给id一个偏移,使得转换后的短网址不太短
5. 实现用户登录会话
6. 使用集合实现唯一计数器
7. 打标签 (集合)
8. 点赞 (集合)
- 点赞:往集合里加用户
- 取消赞:从集合里去除用户
9. 投票 (集合)
- 一个集合保存赞成
- 一个集合保存反对
10. 社交关系
- 集合s1记录关注名单
- 集合s2记录粉丝
如果A关注了B,那么A的s1中添加B,B的s2中添加A。
同时非常方便判断是不是互相关注
11. 抽奖
srandmember
12. 共同关注与推荐关注
- 共同关注:sinter
- 推荐关注:从关注用户的关注用户的集合取交集,并随机返回
13. 反向筛选器
- 给商品添加多个标签
- 然后通过标签选多个商品
14. 排行榜
- zadd 添加排序项
- zrem 去除排序项
- zincrby 修改分数
- zrange 获取前n位
15. 时间线
- zrevrange
- zrevrangebyscore
获取某个时间内的所有文章,将时间转换为时间戳(整型数字)进行范围查询
16. 购买次商品的顾客同时也会购买
17. 自动补全
将某个字开头的词语按权重存到字典里,然后用户拼写时根据已输入字符取出有对应前缀的词,按权重返回
18. 唯一计数器
使用HyperLogLog
19. 检测重复信息
将重复信息放入HyperLogLog中,根据pfadd的返回值是1还是0进行判重。
20. 实现每周/月度/年度计数器
利用HyperLogLog统计每周、每月、每年不同IP的访客IP数量
21. 用户行为记录器
- 定义一个行为,要么做,要么不做
- 用偏移量来指示一个用户
22. 使用bitmap实现整数,以减少内存占用
23. 查找附近用户:GEO
- 摇一摇