坐车2小时,面试5分钟。被面试官无情秒杀,问的一脸懵逼!这些问题我真答不上来啊~~
- 谈谈Redis有哪些应用场景?
- Redis为什么速度这么快?
- 缓存雪崩如何解决? 缓存穿透如何解决?
- 如何使用Redis完成订单列表场景?
- MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的都是热点数据?
- Redis相比memcached有哪些优势?
- 假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如何将它们全部找出来?
场景再现
在传统的基于数据库的架构中,对于数据的抢占问题往往是通过数据库事务(ACID)来保证的。在分布式环境中,出于对性能以及一致性敏感度的要求,使得分布式锁成为了一种比较常见而高效的解决方案。
应用场景介绍:
电子商城提交订单
面试官问:讲讲分布式锁的实现与应用场景?
在提交订单过程中需要判断当前商品库存数量,库存数大于0时方可下单,成功下单后在当前库存数量的基础上减去当前下单数量,然后更新到数据库中。
分布式锁设计目标:
可以保证在分布式部署的应用集群中互斥性,即同一个方法在同一操作只能被一台机器上的一个线程执行。程序出现异常锁能自动释放,避免死锁,锁超时
具体实施:
Redis可谓是互联