redis原子的遞增一定能保證數據是一致的嗎?
Redis的設計模式決定了,滿足原子性的incr操作同時能保證數據的一致性。
原子性和一致性是數據庫事務中提及較多的概念,同時還包括隔離性和持久性。為什么數據庫事務要同時滿足這四個特性,而Redis不用呢?主要原因是兩者的并發處理模型不一樣。
Redis采用IO多路復用模式,即多個網絡連接復用一個處理線程。這種模式下,所有的命令都是順序執行的,不存在多線程場景下的并發問題,同時命令的原子性保證了,這個操作要么完全執行,要么全部回滾,沒有第三種情況,也就保證了數據的一致性:其他命令只有在之前的命令執行完畢或執行失敗之后才能執行,數據狀態一定是一致的。
下一篇單撇怎么輸入