判断是否是已注册用户

思路

简单版本

  • 用 redis 的 set 结构存储已注册用户的手机号/id
  1. 一般来说可以每注册一个用户,db 存储完毕后就往 redis 的 registered_set 里面添加一条已注册用户记录
  2. 查询的时候先查 registered_set
    • 如果有记录就返回已注册
    • 如果没有,就查 db
      • db 没有,就真的没有,返回未注册
      • db 有,写回 registered_set ,返回已注册
        • 这一步是避免缓存 和 db 不一致
  • 缺点, 如果一直找不存在的用户,就会一直打到 db 上

使用布隆过滤器

  • 布隆过滤器的特点是不存在就真的不存在,但是存在可能就不存在
  1. 每注册一个用户,db 存储完毕后就往 redis 的 registered_boolom 添加一条已注册用户记录
  2. 查询的时候查 registered_boolom
    • 没有就真的没有,直接返回未注册
    • 如果有 TODO