计数信号量是一种锁,它可以让用户限制一项资源最多能够同时被多少个进程访问,通常用于限定能够同时使用的资源数量。之前所了解到的分布式锁可以看做是只能被一个进程访问的信号量。 计数信号量和其他种类的锁一样,都需要被获取和释放。客户端首先需要获取信号量,然后执行操作,最后释放信号量。计数信号量和其他锁的区别在于,当客户端获取锁失败的时候,客户端通常会选择进行等待;而当客户端获取计数信号量失败的时候,客户端通常会选择立即返回失败结果。例如商城的秒杀系统,比如只有100个商品,那么就将Redis的信号量设置为100,只有拿到信号量的才会进行后续操作,没有拿到的只能直接返回。 参考链接:Redis计数信号量_redis_米斯特胖墩-华为云开发者联盟