• redis--分布式锁


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

      以前在单机部署模式的时候,常用java lock 。现在微服务的分布式。部署到不同的机器上的服务需要通过中间件进行加锁。

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

      解决方案:

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

      引用老钱的话

        为了治理这个乱象,Redis 2.8 版本中作者加入了 set 指令的扩展参数,使得 setnx 和 expire 指令可以一起执行,彻底解决了分布式锁的乱象。从此以后所有的第三方分布式锁 library 可以休息了。

    > set lock:codehole true ex 5 nx OK
    
    ... do something critical ...
    
    > del lock:codehole

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

    学习的时间不一定要特定安排
  • 相关阅读:
    【ZJ选讲·压缩】
    【ZJ选讲·调整】
    【ZJ选讲·钻石游戏】
    【ZJ选讲·BZOJ 5073】
    【ZJ选讲·BZOJ 5071】
    【模拟赛·polyline】
    【BZOJ 2744 朋友圈】
    【BZOJ 2241 打地鼠】
    【CF edu 30 D. Merge Sort】
    【CF edu 30 C. Strange Game On Matrix】
  • 原文地址:https://www.cnblogs.com/zhongzheng123/p/9890610.html
Copyright © 2020-2023  润新知