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