功课: 事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性。 Atomic(原子性)Consistency(一致性)Isolation(隔离性)Durability(持久性) CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency ...
分类:
其他好文 时间:
2019-08-09 15:56:35
阅读次数:
92
一、应用场景: 本文应用的场景为在查询数据时,发现数据不存在此时就需要去查询数据库并且更新缓存,此时可能存在高并发的请求同时打在数据库上,而针对这种情况必须要给这些请求加锁,故而采用了分布式锁的方式。(当然分布式锁的应用场景较多,我只是针对本人工作的业务场景做了对应的处理) 二、Redis锁的工具类 ...
分类:
其他好文 时间:
2019-08-09 13:11:07
阅读次数:
77
引言大家在面试中有没遇到面试官问你下面六句Sql的区别呢select*fromtablewhereid=?select*fromtablewhereid<?select*fromtablewhereid=?lockinsharemodeselect*fromtablewhereid<?lockinsharemodeselect*fromtablewhereid=?forupdatese
分类:
数据库 时间:
2019-08-09 11:50:41
阅读次数:
108
引言 大家在面试中有没遇到面试官问你下面六句Sql的区别呢 如果你能清楚的说出,这六句sql在不同的事务隔离级别下,是否加锁,加的是共享锁还是排他锁,是否存在间隙锁,那这篇文章就没有看的意义了。之所以写这篇文章是因为目前为止网上这方面的文章太片面,都只说了一半,且大多没指明隔离级别,以及where后 ...
分类:
数据库 时间:
2019-08-08 11:38:48
阅读次数:
136
以下内容转自 murphy_gb 博客 共享锁,又称为读锁,获得共享锁之后,可以查看但无法修改和删除数据。 排他锁,又称为写锁、独占锁,获得排他锁之后,既能读数据,又能修改数据。 为什么要加锁 很多人都知道,锁是用来解决并发问题的,那么什么是并发问题呢?并发情况下,不加锁会有什么问题呢? 拿生活中的 ...
分类:
数据库 时间:
2019-08-07 17:36:36
阅读次数:
96
70%的Java程序员不知道为啥 ConcurrentHashMap 读操作不需要加锁?
分类:
编程语言 时间:
2019-08-07 16:15:06
阅读次数:
99
定义运行方法package com.company; // 包名import java.util.concurrent.locks.ReentrantLock;import java.util.concurrent.locks.Lock;public class ticket implements ...
分类:
编程语言 时间:
2019-08-06 21:32:02
阅读次数:
110
互斥锁 共享资源的使用是互斥的,即一个线程获得资源的使用权后就会将改资源加锁,使用完后会将其解锁,所以在使用过程中有其它线程想要获取该资源的锁,那么它就会被阻塞陷入睡眠状态,直到该资源被解锁才会别唤醒,如果被阻塞的资源不止一个,那么它们都会被唤醒,但是获得资源使用权的是第一个被唤醒的线程,其它线程又 ...
分类:
其他好文 时间:
2019-08-06 15:35:15
阅读次数:
94
前言 大概几个月之前项目中用到事务,需要保证数据的强一致性,期间也用到了mysql的锁,但当时对mysql的锁机制只是管中窥豹,所以本文打算总结一下mysql的锁机制。 本文主要论述关于mysql锁机制,mysql版本为5.7,引擎为innodb,由于实际中关于innodb锁相关的知识及加锁方式很多 ...
分类:
数据库 时间:
2019-08-06 00:43:26
阅读次数:
120
区别 MyISAM基于ISAM存储引擎,并对其进行扩展,不支持事务。 InnoDB给mysql提供了事物提交、回滚等事物安全的存储引擎。 MyISAM采用表级锁。表级锁开销小,加锁快,锁粒度大,冲突概率高,并发度低,不会出现死锁。 InnoDB支持表级锁与行级锁,默认为行级锁。行级锁开销大,加锁慢, ...
分类:
数据库 时间:
2019-08-04 13:55:14
阅读次数:
162