什麼是Redis的原子性?
什麼叫原子操作?
在 Redis 中什麼樣的操作算是原子操作?
欢迎选择我的课程,让我们一起见证您的进步~~
Redis的原子性有兩點:
單一操作是原子性的
多個操作也支援事務,即原子性,透過MULTI和EXEC指令包起來
MULTI
EXEC
原子操作的意思就是要嘛成功執行要嘛失敗完全不執行。用現實中的轉帳比喻最形象,你轉帳要嘛成功,要嘛失敗錢不動,不存在你錢轉出去了,但收款方沒收到這種成功一半失敗一半的情況
第1點已經解答了
原子性(atomicity):一個事務是一個不可分割的最小工作單位,要么都成功要么都失敗。
原子操作是指你的一個業務邏輯必須是不可拆分的.比如你給別人轉錢,你的帳號扣錢,別人的帳號增加錢,這個業務邏輯就是原子性的,這個操作就是原子操作,要嘛都成功要嘛都失敗。
Redis所有單一命令的執行都是原子性的。
redis 實現事務的原理
1. 批量操作在发送 EXEC 命令前被放入队列缓存 2. 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令都不会被执行 3. 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中
我感覺原子性說的是同一時間只能執行一個操作,(一個事務是一個不可分割的最小工作單位,要么都成功要么都失敗)說的應該是一致性吧。有點搞不懂這裡了
Redis的原子性有兩點:
單一操作是原子性的
多個操作也支援事務,即原子性,透過
MULTI
和EXEC
指令包起來原子操作的意思就是要嘛成功執行要嘛失敗完全不執行。用現實中的轉帳比喻最形象,你轉帳要嘛成功,要嘛失敗錢不動,不存在你錢轉出去了,但收款方沒收到這種成功一半失敗一半的情況
第1點已經解答了
原子性(atomicity):一個事務是一個不可分割的最小工作單位,要么都成功要么都失敗。
原子操作是指你的一個業務邏輯必須是不可拆分的.比如你給別人轉錢,你的帳號扣錢,別人的帳號
增加錢,這個業務邏輯就是原子性的,這個操作就是原子操作,要嘛都成功要嘛都失敗。
Redis所有單一命令的執行都是原子性的。
redis 實現事務的原理
我感覺原子性說的是同一時間只能執行一個操作,(一個事務是一個不可分割的最小工作單位,要么都成功要么都失敗)說的應該是一致性吧。有點搞不懂這裡了