原子性atomicity
首先通過上文知道 運(yùn)行期的錯(cuò)誤是不會回滾的,很多文章由此說Redis事務(wù)違背原子性的;而官方文檔認(rèn)為是遵從原子性的。
Redis官方文檔給的理解是,Redis的事務(wù)是原子性的:所有的命令,要么全部執(zhí)行,要么全部不執(zhí)行。而不是完全成功。
一致性consistency redis
事務(wù)可以保證命令失敗的情況下得以回滾,數(shù)據(jù)能恢復(fù)到?jīng)]有執(zhí)行之前的樣子,是保證一致性的,除非redis進(jìn)程意外終結(jié)。
隔離性Isolation redis
事務(wù)是嚴(yán)格遵守隔離性的,原因是redis是單進(jìn)程單線程模式(v6.0之前),可以保證命令執(zhí)行過程中不會被其他客戶端命令打斷。 但是,Redis不像其它結(jié)構(gòu)化數(shù)據(jù)庫有隔離級別這種設(shè)計(jì)。
持久性Durability redis
事務(wù)是不保證持久性的,這是因?yàn)閞edis持久化策略中不管是RDB還是AOF都是異步執(zhí)行的,不保證持久性是出于對性能的考慮