分工、同步、互斥的历史由来 分工:单道、多道、分时 同步:线程通信(组织编排任务) 互斥:因(多线程访问共享资源)果(串行化共享资源的访问) 1切都是为了提高性能 2.可见性、原子性、有序性 可见性:CPU缓存导致可见性问题 原子性:线程切换导致原子性问题 有序性:编译优化带来的有序性问题 3.ja ...
分类:
编程语言 时间:
2020-07-02 21:43:30
阅读次数:
69
浅析数据库与缓存的双写一致性问题 缓存由于其高并发和高性能的特性,在项目中被广泛使用。读缓存流程如下图: 读取缓存流程 双写一致性有以下三个要求: 缓存不能读到脏数据 缓存可能会读到过期数据,但要在可容忍时间内实现最终一致 这个可容忍时间尽可能的小 要想同时满足上面三条,可以采用读请求和写请求串行化 ...
分类:
数据库 时间:
2020-06-26 12:27:14
阅读次数:
58
php的对象串行化,就是把对象传化成二进制字符串格式,便于存储在文件、数据库中,或者在网络上传输对象数据,其中涉及的函数是: 1.serialize()函数:串行化对象,把对象转换成二进制字符串格式; 2.unserialize()函数:反串行化对象,把二进制字符串转换成对象; 3.魔术方法 __s ...
分类:
Web程序 时间:
2020-06-13 23:45:23
阅读次数:
125
在写入或更新资料的过程中, 为保证事务 (transaction) 是正确可靠的, 所必须具备的四个特性 (ACID): 原子性 (Atomicity) : 事务中的所有操作, 要么全部完成, 要么全部不完成, 不会结束在中间某个环节。 事务在执行过程中发生错误, 会被回滚 (Rollback) 到 ...
分类:
其他好文 时间:
2020-06-11 13:52:44
阅读次数:
147
多版本并发控制(Multi-Version Concurrency Control)是MySQL的InnoDB引擎实现隔离级别的一种具体方式。 它可以实现提交读和可重复读两种级别的隔离。 未提交读太简单,不需要用MVCC,可串行化太难,只用MVCC解决不了。 MVCC的基本思想: 在读写锁中,读和读 ...
分类:
数据库 时间:
2020-05-14 01:17:48
阅读次数:
70
总览 MySQL事务隔离级别 read uncommitted 读取未提交的数据 read committed 读取提交的数据 repeatable read 可重复读 serializable 串行化 常见问题 更新丢失————事务A的操作被事务B覆盖 脏读————事务A读取了事务B已经修改但尚未 ...
分类:
数据库 时间:
2020-05-11 18:44:02
阅读次数:
73
innodb引擎支持行级锁。 锁实现了事务之间的隔离功能。 悲观锁,排他锁种类: 1. row-level lock 或record lock 都是指的行级锁 2. gap 间隙锁 3. next-lock 下键锁 隔离级别(隔离的是数据的读,默认的级别是RR模式):也称读的隔离性级别 查看数据库当 ...
分类:
数据库 时间:
2020-05-10 14:34:01
阅读次数:
87
1.三级封锁协议 一级封锁协议 事务在修改数据时必须先加X锁,在事务结束之后释放X锁。 这样可以解决丢失修改的问题。因为不能有两个事务同时修改同一个数据,所以不会有修改被覆盖的问题。 二级封锁协议 在一级的基础上,要求读取数据A之前必须加上S锁,读取A之后立即释放S锁。 这样可以解决读脏数据的问题。 ...
分类:
数据库 时间:
2020-05-09 09:18:12
阅读次数:
105
redis事务 redis事务介绍: 1. redis事务可以一次执行多个命令,本质是一组命令的集合。 2.一个事务中的所有命令都会序列化,按顺序串行化的执行而不会被其他命令插入 作用:一个队列中,一次性、顺序性、排他性的执行一系列命令 multi指令的使用 1. 下面指令演示了一个完整的事物过程, ...
分类:
其他好文 时间:
2020-04-08 09:15:37
阅读次数:
91
一、含义 事务:一条或多条sql语句组成一个执行单位,一组sql语句要么都执行要么都不执行 二、特点(ACID) A 原子性:一个事务是不可再分割的整体,要么都执行要么都不执行 C 一致性:一个事务可以使数据从一个一致状态切换到另外一个一致的状态 I 隔离性:一个事务不受其他事务的干扰,多个事务互相 ...
分类:
其他好文 时间:
2020-04-04 09:56:22
阅读次数:
62