zoukankan      html  css  js  c++  java
  • redis补充之9如何解决 Redis 的并发竞争 Key 问题

    首先了解什么是并发竞争key

      多个系统同时对同一个key进行操作,最终key的执行顺序跟我们的期望不同,也就导致了结果不同。

    怎么解决?

      分布式锁

      zookeeper 和 Redis 都可以实现分布式锁(如果不存在 Redis 的并发竞争 Key 问题,不要使用分布式锁,这样会影响性能)

      基于zookper的临时有序节点能实现分布式锁。

        实现思想:客户端对某个方法加锁时,zookper在与该方法对应指定节点目录上生成一个唯一的瞬时有序节点。

        判断获取锁的方式:有序节点中序号最小的一个

        释放锁:删除瞬时节点

        同时,其可以避免服务宕机导致的锁无法释放,而产生的死锁问题。完成业务流程后,删除对应的子节点释放锁。

        在实践中,当然是从以可靠性为主。所以首推 Zookeeper。

        

  • 相关阅读:
    LINUX-redis & mongodb
    Linux -Docker
    Python 爬虫 58同城
    Python 爬虫 当当网图书 scrapy
    Python 爬虫 NewCnblogs (爬虫-Django-数据分析)
    Python 通用爬虫 和讯博客 scrapy
    selenium
    MongoDB
    Python-Django-Djangorestframwork
    Python-WEB -VUE初识 + webstorm
  • 原文地址:https://www.cnblogs.com/chengmr/p/13360387.html
Copyright © 2011-2022 走看看