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

  • 摇一摇

24. 消息队列:流

25. 为消息队列提供消费者组功能 [todo]

26. 键迭代器

27. 统计数据库中各种类型的键的个数

28. 自动过期的登录会话