分布式锁常见的三种实现方式: 数据库乐观锁; 基于Redis的分布式锁; 基于ZooKeeper的分布式锁。 本地面试考点是,你对Redis使用熟悉吗?Redis中是如何实现分布式锁的。 要点 Redis要实现分布式锁,以下条件应该得到满足 互斥性 在任意时刻,只有一个客户端能持有锁。 在任意时刻, ...
分类:
其他好文 时间:
2019-10-25 13:08:36
阅读次数:
88
1.CountDownLatchCountDownLatch.wait()会使当前线程阻塞,直到CountDownLatch中的计数器递减完毕后继续执行。publicclassCountDownLatchDemo{privatefinalstaticLoggerlog=Logger.getLogger(AtomicIntegerCyclicBarrierDemo.class);publicstat
分类:
编程语言 时间:
2019-10-24 19:31:34
阅读次数:
66
前言 分布式锁一般有三种实现方式: 数据库乐观锁; 基于Redis的分布式锁; 基于ZooKeeper的分布式锁 本篇博客将介绍第二种方式,基于Redis实现分布式锁。 虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正 ...
分类:
编程语言 时间:
2019-10-24 09:48:24
阅读次数:
80
把一个表复制到另一个表 复制表结构:create table newuser like user 导入表数据:insert into newuser select * from user 乐观锁和悲观锁 乐观锁: 首先说明一点的是:乐观锁在数据库上的实现完全是逻辑的,数据库本身不提供支持,而是需要开 ...
分类:
数据库 时间:
2019-10-23 19:45:58
阅读次数:
107
1 首先我们来了解一下 乐观锁与悲观锁的区别 2 3 乐观锁的思路一般是表中增加版本字段,更新时where语句中增加版本的判断,算是一种CAS(Compare And Swep)操作, 4 商品库存场景中number起到了版本控制(相当于version)的作用( AND number=#{numbe... ...
分类:
其他好文 时间:
2019-10-23 13:16:07
阅读次数:
61
场景:两个用户同时读取了数据库中的一条记录,此时用户A对其中一个字段的值进行了修改操作并进行了提交,后来用户B也对这个字段进行了修改,用户B的提交将会覆盖用户A提交的值 参考 ...
分类:
数据库 时间:
2019-10-23 11:27:43
阅读次数:
140
[TOC] 引言:随着金九银十的到来,回首在经历了两周的跳槽求职路后,终于成功拿到offer,距今已经入职快一个月了,因此,这几天抽空将之前的面试题做了个汇总,一方面自己以后回顾学习用,一方面为大家奉送上一份秋收的福利。 JDK jdk1.8版本后的新特性有哪些? 如何避免空指针异常? Dubbo ...
分类:
编程语言 时间:
2019-10-23 09:19:22
阅读次数:
163
https://www.cnblogs.com/suger43894/p/11024102.html https://blog.csdn.net/qq_34337272/article/details/81072874 ...
分类:
其他好文 时间:
2019-10-17 23:23:01
阅读次数:
68
.NET Core WebApi RESTful规范 "RESTful API 最佳实践" "理解RESTful架构" 接口版本控制 "Support multiple versions of ASP.NET Core Web API" "ASP.NET Core API 版本控制" 配置使用流程 ...
分类:
Web程序 时间:
2019-10-15 18:49:55
阅读次数:
126
CAS / ABA 标签(空格分隔): 操作系统 1. CAS 解决 Volatile 不保证原子性的问题 [Volatile不保证原子性的解决方案][1], 在其中我们可以看到我们通过 , 获取值并且将其+1, 重点在于 通过 乐观锁 的方法, 相当于实现了原子性的操作. 2. CAS 导致的 A ...
分类:
其他好文 时间:
2019-10-11 18:04:03
阅读次数:
67