redis--分布式锁

  锁是一种安全机制。是对数据可靠性的保护。java

  之前在单机部署模式的时候,经常使用java lock 。如今微服务的分布式。部署到不一样的机器上的服务须要经过中间件进行加锁。redis

  最简单的模拟的场景是,两个台机子(或者两个服务)执行定时任务。本意是:这个定时任务只要执行一次就好。结果两个都执行了。安全

  解决方案:分布式

    利用redis做为中间件,实现分布式锁。考虑到可能中途出错,没法释放锁的问题。微服务

  引用老钱的话spa

    为了治理这个乱象,Redis 2.8 版本中做者加入了 set 指令的扩展参数,使得 setnx 和 expire 指令能够一块儿执行,完全解决了分布式锁的乱象。今后之后全部的第三方分布式锁 library 能够休息了。code

> set lock:codehole true ex 5 nx OK

... do something critical ...

> del lock:codehole

 

上面这个指令就是 setnx 和 expire 组合在一块儿的原子指令,它就是分布式锁的奥义所在。... https://juejin.im 掘金 — 一个帮助开发者成长的社区中间件

相关文章
相关标签/搜索