您好,登錄后才能下訂單哦!
本篇內容主要講解“Jedis使用Redis事務的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Jedis使用Redis事務的方法是什么”吧!
什么是Jedis 是Redis官方推薦的java連接開發工具!使用Java操作Redis 中間件!(就是一個jar包)如果你要使用java操作redis,那么一定要對Jedis十分的熟悉!
1、導入對應的依賴
<!-- 導入jedis的包 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>4.2.2</version> </dependency> <!-- fastjson--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.50</version> </dependency>
2、編碼測試
連接redis數據庫
操作命令
斷開連接!
public class TestPing { public static void main(String[] args) { //1、new Jedis對象即可 Jedis jedis = new Jedis("127.0.0.1",6379); //Jedis所有的命令就是我們之前學習的指令! System.out.println(jedis.ping());; } }
輸出:說明連接成功
PONG
jedis所有方法和redis里的所有命令一模一樣,沒有任何改變,在redis上能操作的,使用jedis同樣可以操作
執行結果:
string的其他方法:
執行結果:
執行結果:
執行結果:
也是一樣,在linux上執行的命令就是jedis的方法
所有的api命令,就是我們學習的指令,一一對應,一個都沒有變化!
1、在java中使用redis的事務:
package com.uno; import com.alibaba.fastjson.JSONObject; import redis.clients.jedis.Jedis; import redis.clients.jedis.Transaction; public class TestTx { public static void main(String[] args) { Jedis jedis = new Jedis("127.0.0.1", 6379); JSONObject jsonObject = new JSONObject(); jsonObject.put("hello","world"); jsonObject.put("name", "UNO"); String result = jsonObject.toJSONString(); //1、開啟事務 Transaction multi = jedis.multi(); //jedis.watch(result); //加樂觀鎖,監視 try { //2、命令入隊 multi.set("user1", result); multi.set("user2",result); //3、執行,這三個步驟也都是和linux中操作redis命令一模一樣 multi.exec(); } catch (Exception e) { //當出現錯誤,放棄事務 multi.discard(); throw new RuntimeException(e); } finally { System.out.println(jedis.get("user1")); System.out.println(jedis.get("user2")); //關閉連接 jedis.close(); } } }
執行結果:成功
{"name":"UNO","hello":"world"}
{"name":"UNO","hello":"world"}
2、如果出現錯誤:
package com.uno; import com.alibaba.fastjson.JSONObject; import redis.clients.jedis.Jedis; import redis.clients.jedis.Transaction; public class TestTx { public static void main(String[] args) { Jedis jedis = new Jedis("127.0.0.1", 6379); jedis.flushDB(); //先清理一下數據庫,免得被上面的代碼在redis設置的值影響 JSONObject jsonObject = new JSONObject(); jsonObject.put("hello","world"); jsonObject.put("name", "UNO"); String result = jsonObject.toJSONString(); //1、開啟事務 Transaction multi = jedis.multi(); // jedis.watch(result); //加樂觀鎖,監視 try { //2、命令入隊 multi.set("user1", result); multi.set("user2",result); int i = 1/0; //手動設置一個運行時異常,看是不是會出現運行時異常,然后被catch捕獲 //3、執行,這三個步驟也都是和linux中操作redis命令一模一樣 multi.exec(); } catch (Exception e) { //放棄事務 multi.discard(); throw new RuntimeException(e); } finally { System.out.println(jedis.get("user1")); System.out.println(jedis.get("user2")); //關閉連接 jedis.close(); } } }
執行結果:出現運行時異常,被catch捕獲,在catch中放棄事務,就是都不執行
null
null
Exception in thread "main" java.lang.RuntimeException: java.lang.ArithmeticException: / by zero
at com.uno.TestTx.main(TestTx.java:28)
Caused by: java.lang.ArithmeticException: / by zero
at com.uno.TestTx.main(TestTx.java:22)
注意事項:jedis連不上遠程服務器
用Jedis連接阿里云等服務器上的redis
一. 配置redis.conf
1.設置訪問redis的密碼:requirepass 要設置密碼
2.注釋bind 127.0.0.1
(重啟redis-server服務,進入redis后要先驗證密碼,用這個命令:auth 密碼 ,然后ping一下看有沒有配置成功)
二 . idea訪問時添加auth密碼
Jedis jedis = new Jedis("服務器的外網ip",6379); jedis.auth("redis的密碼"); System.out.println(jedis.ping()); (輸出PONG的話就成功了)
到此,相信大家對“Jedis使用Redis事務的方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。