Redis篇-使用场景与面试技巧【分布式锁及其他场景与问题】

 常见的使用场景对应面试问题2:

  1. Redis分布式锁如何实现?
  2. Redis实现分布式锁如何合理的控制锁的有效时长?

Redis其他面试问题:

  1. Redis集群有哪些方案,知道吗?
  2. 什么是 Redis 主从同步你们使用Redis是单点还是集群?哪种集群?
  3. Redis分片集群中数据是怎么存储和读取的?
  4. Redis集群脑裂
  5. 怎么保证Redis的高并发高可用?
  6. 你们用过Redis的事务吗?事务的命令有哪些?
  7. Redis是单线程的,但是为什么还那么快?

下面将逐一进行解析

Redis分布式锁问题

问题:你在最近的项目中哪些场景使用了redis呢?redis分布式锁,是如何实现的?

结合自己项目业务进行回答,通常情况下,分布锁使用场景如下:

集群情况下的定事任务,抢单,幂等性场景。

例如:抢券场景。

正常流程

 超卖情况

单体项目,加锁解决。

 而在集群的项目中存在多个JVM,所以每个JVM加锁都可以查到一条数据。如下:

而这种集群情况下,就需要加入分布式锁了。

Redis分布式锁实现

Redis实现分布式锁主要利用Redis的setnx命令。setnx是SET if not exists(如果不存在,则 SET)的简写。

如何实现分布式锁

使用的redisson实现的分布式锁,底层是setnxlua脚本(保证原子性)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值