redis如何实现秒杀?
实现并发的基础上保持数据的一致性,使用redis分布式锁
redis分布式锁的原理非常简单:在运行实际的业务代码之前,首先到redis中去获得唯一的redis锁,如果获取到,则继续执行业务代码,并在业务代码结束后主动释放锁;
若未成功获取到锁,则不执行业务代码
作为分布式锁实现过程中的共享存储系统,Redis可以使用键值对来保存锁变量,在接收和处理不同客户端发送的加锁和释放锁的操作请求。
键值对的键和值具体是怎么定的呢?我们要赋予锁变量一个变量名,把这个变量名作为键值对的键,而锁变量的值,则是键值对的值,Redis就能保存锁变量了,客户端也就可以通过Redis的命令操作来实现锁操作
实现分布式锁,必须要求Redis有互斥的能力。可以使用SETNX命令,其含义是SET IF NOT EXIST,即如果key不存在,才会设置它的值,否则什么也不做
两个客户端进程可以执行这个命令,达到互斥,就可以实现一个分布式锁
redis面试题
于 2023-04-25 20:30:53 首次发布