判断是否是已注册用户
思路
简单版本
- 用 redis 的 set 结构存储已注册用户的手机号/id
- 一般来说可以每注册一个用户,db 存储完毕后就往 redis 的
registered_set
里面添加一条已注册用户记录 - 查询的时候先查
registered_set
- 如果有记录就返回已注册
- 如果没有,就查 db
- db 没有,就真的没有,返回未注册
- db 有,写回
registered_set
,返回已注册- 这一步是避免缓存 和 db 不一致
- 缺点, 如果一直找不存在的用户,就会一直打到 db 上
使用布隆过滤器
- 布隆过滤器的特点是不存在就真的不存在,但是存在可能就不存在
- 每注册一个用户,db 存储完毕后就往 redis 的
registered_boolom
添加一条已注册用户记录 - 查询的时候查
registered_boolom
- 没有就真的没有,直接返回未注册
- 如果有 TODO