面试官问:讲讲分布式锁的实现与应用场景?

坐车2小时,面试5分钟。被面试官无情秒杀,问的一脸懵逼!这些问题我真答不上来啊~~

  • 谈谈Redis有哪些应用场景?
  • Redis为什么速度这么快?
  • 缓存雪崩如何解决? 缓存穿透如何解决?
  • 如何使用Redis完成订单列表场景?
  • MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的都是热点数据?
  • Redis相比memcached有哪些优势?
  • 假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如何将它们全部找出来?

场景再现

在传统的基于数据库的架构中,对于数据的抢占问题往往是通过数据库事务(ACID)来保证的。在分布式环境中,出于对性能以及一致性敏感度的要求,使得分布式锁成为了一种比较常见而高效的解决方案。

应用场景介绍:

电子商城提交订单
在这里插入图片描述

面试官问:讲讲分布式锁的实现与应用场景?
在提交订单过程中需要判断当前商品库存数量,库存数大于0时方可下单,成功下单后在当前库存数量的基础上减去当前下单数量,然后更新到数据库中。

分布式锁设计目标:

可以保证在分布式部署的应用集群中互斥性,即同一个方法在同一操作只能被一台机器上的一个线程执行。程序出现异常锁能自动释放,避免死锁,锁超时

具体实施:

Redis可谓是互联网重磅级杀手锏,Redis的很多应用神技却不为人知。通过上面的应用场景我给大家推荐腾讯课堂联合源码学院出的一个 2 分的课程《分布式解决方案与互联网通讯本质解析》,看分布式下分布式锁的三种实现方式及对比分析底层原理等。

核心技术:

  • 为什么要使用分布式锁
  • 分布式锁应该具备哪些条件
  • 基于数据库的实现方式
  • 基于Redis的实现方式
  • 基于ZooKeeper的实现方式
  • 基于MySQL的实现方式
  • 分布式锁关键技术和常见解决方案

▼点击『 了解更多』进入《分布式解决方案与互联网通讯本质解析》了解详情。

也欢迎大家关注我的公众号:Java大型网站架构(分享更多干货资料,知识)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/XingXing_Java/article/details/103492930