- 博客(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
2020-06-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人