首頁  >  問答  >  主體

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

  1. 什麼是Redis的原子性?

  2. 什麼叫原子操作?

  3. 在 Redis 中什麼樣的操作算是原子操作?

天蓬老师天蓬老师2755 天前928

全部回覆(3)我來回復

  • PHP中文网

    PHP中文网2017-04-25 09:06:06

    1. Redis的原子性有兩點:

      • 單一操作是原子性的

      • 多個操作也支援事務,即原子性,透過MULTIEXEC指令包起來

    2. 原子操作的意思就是要嘛成功執行要嘛失敗完全不執行。用現實中的轉帳比喻最形象,你轉帳要嘛成功,要嘛失敗錢不動,不存在你錢轉出去了,但收款方沒收到這種成功一半失敗一半的情況

    3. 第1點已經解答了

    回覆
    0
  • 高洛峰

    高洛峰2017-04-25 09:06:06

    原子性(atomicity):一個事務是一個不可分割的最小工作單位,要么都成功要么都失敗。

    原子操作是指你的一個業務邏輯必須是不可拆分的.比如你給別人轉錢,你的帳號扣錢,別人的帳號
    增加錢,這個業務邏輯就是原子性的,這個操作就是原子操作,要嘛都成功要嘛都失敗。

    Redis所有單一命令的執行都是原子性的。

    redis 實現事務的原理

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

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-25 09:06:06

    我感覺原子性說的是同一時間只能執行一個操作,(一個事務是一個不可分割的最小工作單位,要么都成功要么都失敗)說的應該是一致性吧。有點搞不懂這裡了

    回覆
    0
  • 取消回覆