5 – 黑马点评 – 技术总结

a-fei 发布于 2 天前 11 次阅读


  1. 短信登录
    1. 通过session实现 发送验证码 和 短信登录注册 的功能
    2. 配置登录拦截器
    3. 使用redis代替session
    4. 配置双拦截器,实现用户登录状态自动刷新,防止活跃用户频繁国企
  2. 商户查询缓存(针对缓存的问题)
    1. 实现类似Spring Cache中 读,写 时附带的缓存提升效率操作的业务逻辑
    2. 缓存更新策略 基础
    3. 读--缓存穿透问题
    4. 读--缓存雪崩问题
    5. 读--缓存击穿问题--互斥锁&逻辑过期两个方案
  3. 优惠券秒杀(针对并发的问题)
    1. redis全局唯一id
    2. 秒杀下单基本逻辑
    3. 存在库存超卖问题--使用乐观锁解决
    4. 加上一人一单的业务逻辑
    5. 发现一人一单功能可能出现并发问题
    • 手写分布式锁解决
    • Redisson分布式锁解决
    • 利用阻塞队列,将判断资格业务放在redis当中(主线程),复杂业务加入阻塞队列,在线程池多开一个线程去执行,提高效率
    • 你会发现上面阻塞队列+线程池的技术可以使用消息队列实现,因此使用Redis-Stream消费者组模式-消息队列,改造上面的代码
  4. Redis可以实现的业务(针对redis丰富数据类型的应用)
    1. 点赞--set(初定)
    2. 点赞排行榜--sortedSet
    3. 关注取关--加了一张记录关注数据的表解决的
    4. 共同关注--set查找交集的功能
    5. 信息推送实现逻辑(拉 & 推 & 推拉结合)实现了推模式(ez)
    6. 获取消息--滚动分页--zset--reverseRangeByScoreWithScores方法
    7. 附近商铺--GEO数据类型计算方圆直线距离
    8. 签到--BitMap
    9. 统计连续签到--BitMap--使用到了位运算技巧
    10. UV独立访客量(同一个用户多次访问该网站,只记录1次)--这里没有具体实现,只说明HLL类型可以实现这个功能(内存占用极低,使用概率算法)