自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 资源 (1)
  • 收藏
  • 关注

原创 先删数据库还是先删缓存

先删缓存再删数据库: 在高并发的情况下会导致缓存击穿(缓存没有线程全部访问数据库造成压力过大)。当第一个线程进来删除缓存,第二个线程进来缓存没有查询数据库然后更新缓存,第一个线程更新数据库,造成脏读。 先删数据库再删缓存: 当一个线程进来更新数据库,另一个线程进来读取缓存,然后第一个线程更新缓存,造成脏读。 异常: 以上情况都没有考虑到异常情况,比如缓存更新失败数据库更新失败。可以做补偿机制。re...

2020-04-27 11:13:41 1356

原创 MySql InnoDB 的事务隔离级别

MySql InnoDB 的事务隔离级别 未提交读(Read uncommitted) 已提交读(Read committed) 可重复读(Repeatable read) 可串行化(Serializable)

2020-04-27 10:16:38 114

原创 binlog. redo log. undo log

binlog 恢复使能够最大可能地更新数据库,因为二进制日志包含备份后进行的所有更新。 在主复制服务器上记录所有将发送给从服务器的语句。 redolog 记录的是新数据的备份。在事务提交前,只要将redolog持久化即可,不需要将数据持久化。当系统崩溃时,虽然数据没有持久化, 但是redolog已经持久化。系统可以根据redolog的内容,将所有数据恢复到最新的状态。 undolog 实现事...

2020-04-26 18:04:43 110

原创 lock锁的condition原理

首先Condition维护了一个AQS单向链表,当调用await()时将当前线程加入到链表中,然后调用signal()会从链表头部拿出一个节点放到ReenTranLock维护的双向链表中,去抢锁,如果抢锁成功就执行,如果调用signalAll就是把所有的Condition链表节点都加入到ReenTranLock维护的双向链表中去抢锁。 ...

2020-04-26 17:52:30 293 1

原创 mysql Innodb 三种行锁(记录锁、间隙锁与临键锁)

Record Lock:记录锁,单个行记录上的锁。 Gap Lock:间隙锁,锁定一个范围,但不包括记录本身。 Next-Key Lock:临键锁,锁定一个范围,并且锁定记录本身。对于行的查询,都是采用该方法,可以解决幻读的问题。 那么什么是幻读呢? 事务A读取与搜索条件相匹配的若干行。事务B以插入或删除行等方式来修改事务A的结果集,然后再提交,然后待事务A再次进行查询时发现数据与第一次不匹配...

2020-04-26 17:51:10 3659

docker,erlang,rabbitmq,redis安装.txt

详细的docker,erlang,rabbitmq,redis安装步骤。本人在自己安装过程中整理出来,希望能帮助到大家。

2020-06-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除