Heim > Fragen und Antworten > Hauptteil
PHP中文网2017-04-25 09:06:06
Redis的原子性有两点:
单个操作是原子性的
多个操作也支持事务,即原子性,通过MULTI
和EXEC
指令包起来
原子操作的意思就是要么成功执行要么失败完全不执行。用现实中的转账比喻最形象,你转账要么成功,要么失败钱不动,不存在你钱转出去了,但收款方没收到这种成功一半失败一半的情况
第1点已经解答了
高洛峰2017-04-25 09:06:06
原子性(atomicity):一个事务是一个不可分割的最小工作单位,要么都成功要么都失败。
原子操作是指你的一个业务逻辑必须是不可拆分的.比如你给别人转钱,你的账号扣钱,别人的账号
增加钱,这个业务逻辑就是原子性的,这个操作就是原子操作,要么都成功要么都失败。
Redis所有单个命令的执行都是原子性的。
redis 实现事务的原理
1. 批量操作在发送 EXEC 命令前被放入队列缓存
2. 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令都不会被执行
3. 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中
巴扎黑2017-04-25 09:06:06
我感觉原子性说的是同一时间只能执行一个操作,(一个事务是一个不可分割的最小工作单位,要么都成功要么都失败)说的应该是一致性吧。有点搞不懂这里了