Redis Transaction事務

Redis 事務的目的是方便用戶一次執行多個命令。執行 Redis 事務可分為三個階段:

  • 開始事務
  • 命令入隊
  • 執行事務

Redis事務特性

Redis 事務具有兩個重要特性:

1) 單獨的隔離操作

事務中的所有命令都會被序列化,它們將按照順序執行,并且在執行過的程中,不會被其他客戶端發送來的命令打斷。

2) 不保證原子性

在 Redis 的事務中,如果存在命令執行失敗的情況,那么其他命令依然會被執行,不支持事務回滾機制。

注意:Redis 不支持事務回滾,原因在于 Redis 是一款基于內存的存儲系統,其內部結構比較簡單,若支持回滾機制,則讓其變得冗余,并且損耗性能,這與 Redis 簡單、快速的理念不相符合。

Redis事務命令

Redis事務命令
命令說明
MULTI開啟一個事務
EXEC執行事務中的所有命令
WATCH key [key ...]在開啟事務之前用來監視一個或多個key 。如果事務執行時這些 key 被改動過,那么事務將被打斷。
DISCARD取消事務。
UNWATCH取消 WATCH 命令對?key 的監控。

Redis事務應用

您可以把事務可以理解為一個批量執行 Redis 命令的腳本,但這個操作并非原子性操作,也就是說,如果中間某條命令執行失敗,并不會導致前面已執行命令的回滾,同時不會中斷后續命令的執行(不包含監聽 key 的情況)。示例如下:

開啟事務
127.0.0.1:6379>?MULTI
OK
127.0.0.1:6379>?INCR?1
QUEUED?#命令入隊成功
127.0.0.1:6379>?SET?num?10
QUEUED
#批量執行命令
127.0.0.1:6379>?EXEC
1)?(integer)?1
2)?OK

若在事務開啟之前監聽了某個 key,那么不應該在事務中嘗試修改它,否則會導致事務中斷。

開啟事務之前設置key/value,并監聽
127.0.0.1:6379>?set?www.biancheng.net?hello
OK
127.0.0.1:6379>?WATCH?www.biancheng.net
OK
127.0.0.1:6379>?get?www.biancheng.net
"hello"
#開啟事務
127.0.0.1:6379>?MULTI
OK
#更改key的value值
127.0.0.1:6379>?set?www.biancheng.net?HELLO
QUEUED
127.0.0.1:6379>?GET?www.biancheng.net
QUEUED
#命令執行失敗
127.0.0.1:6379>?EXEC
(error)?EXECABORT?Transaction?discarded?because?of?previous?errors.
#取消監聽key
127.0.0.1:6379>?UNWATCH?
OK??

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/166176.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166176.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166176.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

圖像標記上線,描點信息盡在掌握丨三疊云

圖像標記 路徑 表單設計 >> 組件 >> 增強組件 功能簡介 「圖像標記」字段是「增強字段」類型字段。用戶通過上傳圖片的方式構建一個背景圖片,并在構建的圖片背景上添加描點信息。搭配「儀表盤」中的「圖像軌跡」,可繪制出相應的數據軌跡…

界面組件DevExpress Reporting v23.1 - Web報表設計器功能升級

DevExpress Reporting是.NET Framework下功能完善的報表平臺,它附帶了易于使用的Visual Studio報表設計器和豐富的報表控件集,包括數據透視表、圖表,因此您可以構建無與倫比、信息清晰的報表 界面組件DevExpress Reporting v23.1已經發布一段…

基于JavaWeb+SSM+Vue微信閱讀小程序的設計和實現

基于JavaWebSSMVue微信閱讀小程序的設計和實現 源碼獲取入口Lun文目錄前言主要技術系統設計功能截圖訂閱經典源碼專欄[Java 源碼獲取 源碼獲取入口 Lun文目錄 第1章 緒論 1 1.1 課題背景 1 1.2 課題意義 1 1.3 研究內容 1 第2章 開發環境與技術 3 2.1 MYSQL數據庫 3 2.2 JSP技…

2016年8月15日 Go生態洞察:Go 1.7版本發布

🌷🍁 博主貓頭虎(🐅🐾)帶您 Go to New World?🍁 🦄 博客首頁——🐅🐾貓頭虎的博客🎐 🐳 《面試題大全專欄》 🦕 文章圖文…

解決traefik/nginx-ingress-controller配置正確的情況訪問域名仍然報錯: Connection Refused的問題

最近碰到一個很奇怪的問題: traefik/nginx-ingress-controller配置正確,但是訪問ingress配置的host域名就是死活報錯: Connection Refused 這樣怎么也找不到原因,然后一咬牙直接在其中一臺節點yum安裝nginx, 通過直接反向代理的方…

微信小程序開發資源匯總

本文收集了微信小程序開發過程中會使用到的資料、問題以及第三方組件庫。本文不是一篇關于如何學習微信小程序的入門指南,也非參考手冊,只是一些資料的整理。 本倉庫中的資料整理自網絡,也有一些來自網友的推薦。 官方文檔 小程序設計指南…

UE5 UI教程學習筆記

參考資料:https://item.taobao.com/item.htm?spma21n57.1.0.0.2b4f523cAV5i43&id716635137219&ns1&abbucket15#detail 基礎工程:https://download.csdn.net/download/qq_17523181/88559312 1. 介紹 工程素材 2. 創建Widget UE5 UI系統的…

那些被玩爛了的設計模式

單例模式 單例模式是指一個類在一個進程中只有一個實例對象(但也不一定,比如Spring中的Bean的單例是指在一個容器中是單例的) 單例模式創建分為餓漢式和懶漢式,總共大概有8種寫法。但是在開源項目中使用最多的主要有兩種寫法&am…

electron實現截圖的功能

Electron是一種跨平臺的桌面應用程序開發框架,可以使用HTML、CSS和JavaScript等Web技術構建桌面應用程序。下面是一種使用Electron實現截圖的簡單方法: 安裝Electron和截圖庫 首先,需要安裝Electron和一個截圖庫,例如electron-sc…

替換jar文件中的jar文件中的class

文件格式 testjar.jar在ruoyi.jar中。 AssetServiceImpl.class在testjar.jar 查找testjar.jar路徑 jar -tvf ruoyi.jar | grep testjar.jar 解析testjar.jar jar -xvf ruoyi.jar BOOT-INF/lib/testjar.jar 查找class文件路徑 jar -tvf testjar.jar | grep AssetServiceImp…

ELK: logstash gork filter 多個模式(pattern)匹配規則語法和多行日志匹配設置

項目里用logstash分析日志,由于有多種模式(pattern)需要匹配,網上搜了很多示例,發現這些都是老的寫法,都會報錯,后來查閱了官方文檔,才發現,新版本只支持新語法。 錯誤的…

【MISRA-C 2012】濃縮版解讀

文章目錄 1、前言2、簡介2.1、如何看待MISRA-C 20122.2、準則(guidelines)里面的指示(Directive)和規則(Rule)2.3、準則(guidelines)的級別(Category) 3、若干重要的Directive和Rule3.1、指示(Directive)Dir 2.1(必要) 所有的源文件編譯過程不得有編譯錯…

聚類筆記/sklearn筆記:Affinity Propagation親和力傳播

1 算法原理 1.1 基本思想 將全部數據點都當作潛在的聚類中心(稱之為 exemplar )然后數據點兩兩之間連線構成一個網絡( 相似度矩陣 )再通過網絡中各條邊的消息( responsibility 和 availability )傳遞計算出各樣本的聚類中心。 1.2 主要概念 Examplar聚類中心similarity S(i…

Java Excel Poi 單元格內置的數據格式

位置 //在類 org.apache.poi.ss.usermodel.BuiltinFormats 中的私有成員變量_formats中 private static final String[] _formats new String[]{"General", "0", "0.00", "#,##0", "#,##0.00", "\"$\"#,##…

【ARM CoreLink 系列 3.2 -- CCI-400,CCI-500, CCI-550 差異】

文章目錄 CCI-400 和 CCI-500 差異ARM CCI-400ARM CCI-500ARM CCI-550CCI-400 和 CCI-500 差異 ARM的 CCI(Cache Coherent Interconnect)系列產品是用于多核處理器之間的高性能緩存一致性互連。CCI-400 和 CCI-500 是該系列中的兩種設計,它們旨在允許多個處理器核心和其他資…

TopNet-(CVPR2023)前背景圖像合成

文章目錄 摘要引言算法架構結構損失函數 實驗數據集評估SOTA比較模型是否過擬合到修復區域泛化到真實圖片消融實驗 討論及結論限制 參考文獻 摘要 作者調研自動放置目標到背景進行圖像合成的問題。提供背景圖、分割的目標,訓練模型預測合理放置信息(位置…

JavaScript文檔加載和文檔準備的區別

你可能已經聽說過JavaScript中的“文檔加載”和“文檔準備”這兩個術語。雖然它們聽起來很相似,但它們實際上有一些重要的區別。在本文中,我們將深入探討這兩個概念的區別,以及它們在實際編碼中的應用。 引言 在開始討論JS文檔加載和文檔準備…

批量添加PPT備注

我一直都覺得,用python高效辦公,是件沒必要的事。。。 但直到最近寫課做PPT,做了80多頁PPT,要把每一頁PPT的備注粘貼進去時 我覺得,有什么關系呢,一頁一頁粘 但是粘到5頁,我感覺ctlc\v頻率有點兒…

程序員接單,寶藏好平臺抄底攻略清單!五大平臺精選。

前陣子“雙十一”購物節狂歡促銷,各種好貨清單席卷而來。 程序員購不購物我不知道,但是這個兼職、接單清單相信你一定用得著。 搜羅海量信息,整理大量數據與評價,挖出了5個寶藏平臺,絕對個個精選,保證量大…

圖片轉換成pdf格式的軟件ABBYY16

ABBYY PDF這款提供多種圖像處理選項,可提高源圖像的質量,便于準確地識別光學字符。我們掃描紙質文檔或從圖像文件創建 PDF 時,務必選擇合適的圖像處理選項。而在ABBYY PDF 中包含下列圖像處理選項。 識別文本 — 選擇此選項會將文本層放在圖…