Redis 分布式事務和分布式事務鎖

2021-10-12 18:33:23 字數 1117 閱讀 5951

講分布式事務鎖前的幾個概念

絕大部分請求是純粹的記憶體操作(非常快速),避免了與硬碟的接觸

豐富的特性:可用於快取,訊息,按key設定過期時間,過期後將會自動刪除

使用大量的hash思想的k v鍵值對, 獲取效率為o(1)

依靠非阻塞的io多路復用原則,使redis形成單執行緒去執行命令的伺服器, 避免了不必要的阻塞和上下文切換和競爭條件

redis採用io復用實現單執行緒的方式, 將命令任務分裝在佇列中讓乙個執行緒去序列化執行, 自然避免了執行緒安全問題, 這也是為什麼我們常說redis是基於原子操作的原因

跟多執行緒相比較,執行緒切換需要切換到核心進行執行緒切換,需要消耗時間和資源.而i/o多路復用不需要切換線/程序,效率相對較高,特別是對高併發的應用nginx就是用i/o多路復用,故而效能極佳

沒錯,大家所熟知的 redis 確實是單執行緒模型,指的是執行 redis 命令的核心模組是單執行緒的,而不是整個 redis 例項就乙個執行緒,redis 其他模組還有各自模組的執行緒的

比如socket連線, 這就是乙個多執行緒式的

在redis事務中或有乙個watch樂觀鎖去監視者資料是否被改動, 如果真的是完全單執行緒, 那麼就不需要有這個監視的存在

本質原因就是redis的socket連線是多執行緒的, 我們在開始redis事務, 往裡面新增命令其實並沒有真正的執行這些命令, 所以需要watch的監視, 防止其他socket連線進行了資料的操作

下面看看redis的真實執行環境

核心思想

setnx key value
問題一

解決思路

問題一

解決思路

這就是上圖那個看門狗的作用可, 這條狗看到時間快到了, 就大喊一聲讓時間倒流~

問題三解決思路

設定最大續命時間, 或者設定最大續命次數

分布式 分布式事務

是資料庫執行過程中的乙個邏輯單位,由乙個有限的資料庫操作序列構成。事務的acid四大特性 原子性 atomicity 事務作為乙個整體被執行。一致性 consistency 從乙個一致的狀態轉換到另乙個一致的狀態。隔離性 isolation 多個事務併發執行時,併發事務之間互相影響的程度。永續性 d...

分布式之分布式事務

被人問到分布式事務,之前學rabbitmq 的時候學到過rabbitmq 高階的事務,因為沒有用過,所有沒有回答好。這裡總結一下。1.單機版事務。事務的四大特性 acid a.原子性 b.一致性 c.隔離性 d.永續性 單機事務可以通過設定事務的隔離級別 參見spring 的事務隔離級別 2.分布式...

分布式理論 分布式事務

資料庫事務 事務的基本特性 事務有4個非常重要的特性,即我們常說的 acid atomicity 原子性 是說事務是乙個不可分割的整體,所有操作要麼全做,要麼全不做 只要事務中有乙個操作出錯,回滾到事務開始前的狀態的話,那麼之前已經執行的所有操作都是無效的,都應該回滾到開始前的狀態。consiste...