Redis的原子性?什么是原子操作?

  1. 什么是Redis的原子性?

  2. 什么叫做原子操作?

  3. 在 Redis 中什么样的操作算是原子操作?

阅读 28.8k
3 个回答
  1. Redis的原子性有两点:

    • 单个操作是原子性的

    • 多个操作也支持事务,即原子性,通过MULTIEXEC指令包起来

  2. 原子操作的意思就是要么成功执行要么失败完全不执行。用现实中的转账比喻最形象,你转账要么成功,要么失败钱不动,不存在你钱转出去了,但收款方没收到这种成功一半失败一半的情况

  3. 第1点已经解答了

原子性(atomicity):一个事务是一个不可分割的最小工作单位,要么都成功要么都失败。

原子操作是指你的一个业务逻辑必须是不可拆分的.比如你给别人转钱,你的账号扣钱,别人的账号
增加钱,这个业务逻辑就是原子性的,这个操作就是原子操作,要么都成功要么都失败。

Redis所有单个命令的执行都是原子性的。

redis 实现事务的原理

1. 批量操作在发送 EXEC 命令前被放入队列缓存
2. 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令都不会被执行
3. 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中

我感觉原子性说的是同一时间只能执行一个操作,(一个事务是一个不可分割的最小工作单位,要么都成功要么都失败)说的应该是一致性吧。有点搞不懂这里了

宣传栏