關(guān)于Jedis的用法以及Jedis使用Redis事務(wù)
我們要使用java來操作redis
什么是Jedis?
什么是Jedis 是Redis官方推薦的java連接開發(fā)工具!使用Java操作Redis 中間件!(就是一個jar包)如果你要使用java操作redis,那么一定要對Jedis十分的熟悉!
測試
1、導(dǎo)入對應(yīng)的依賴
<!-- 導(dǎo)入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數(shù)據(jù)庫
- 操作命令
- 斷開連接!
public class TestPing {
public static void main(String[] args) {
//1、new Jedis對象即可
Jedis jedis = new Jedis("127.0.0.1",6379);
//Jedis所有的命令就是我們之前學(xué)習(xí)的指令!
System.out.println(jedis.ping());;
}
}
輸出:說明連接成功
PONG
jedis所有方法和redis里的所有命令一模一樣,沒有任何改變,在redis上能操作的,使用jedis同樣可以操作
String

執(zhí)行結(jié)果:

string的其他方法:

list

執(zhí)行結(jié)果:

set


執(zhí)行結(jié)果:

hash

執(zhí)行結(jié)果:

zset
也是一樣,在linux上執(zhí)行的命令就是jedis的方法
所有的api命令,就是我們學(xué)習(xí)的指令,一一對應(yīng),一個都沒有變化!
事務(wù)
1、在java中使用redis的事務(wù):
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、開啟事務(wù)
Transaction multi = jedis.multi();
//jedis.watch(result); //加樂觀鎖,監(jiān)視
try {
//2、命令入隊
multi.set("user1", result);
multi.set("user2",result);
//3、執(zhí)行,這三個步驟也都是和linux中操作redis命令一模一樣
multi.exec();
} catch (Exception e) {
//當(dāng)出現(xiàn)錯誤,放棄事務(wù)
multi.discard();
throw new RuntimeException(e);
} finally {
System.out.println(jedis.get("user1"));
System.out.println(jedis.get("user2"));
//關(guān)閉連接
jedis.close();
}
}
}
執(zhí)行結(jié)果:成功
{"name":"UNO","hello":"world"}
{"name":"UNO","hello":"world"}
2、如果出現(xiàn)錯誤:
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(); //先清理一下數(shù)據(jù)庫,免得被上面的代碼在redis設(shè)置的值影響
JSONObject jsonObject = new JSONObject();
jsonObject.put("hello","world");
jsonObject.put("name", "UNO");
String result = jsonObject.toJSONString();
//1、開啟事務(wù)
Transaction multi = jedis.multi();
// jedis.watch(result); //加樂觀鎖,監(jiān)視
try {
//2、命令入隊
multi.set("user1", result);
multi.set("user2",result);
int i = 1/0; //手動設(shè)置一個運行時異常,看是不是會出現(xiàn)運行時異常,然后被catch捕獲
//3、執(zhí)行,這三個步驟也都是和linux中操作redis命令一模一樣
multi.exec();
} catch (Exception e) {
//放棄事務(wù)
multi.discard();
throw new RuntimeException(e);
} finally {
System.out.println(jedis.get("user1"));
System.out.println(jedis.get("user2"));
//關(guān)閉連接
jedis.close();
}
}
}
執(zhí)行結(jié)果:出現(xiàn)運行時異常,被catch捕獲,在catch中放棄事務(wù),就是都不執(zhí)行
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連不上遠程服務(wù)器
用Jedis連接阿里云等服務(wù)器上的redis
一. 配置redis.conf
1.設(shè)置訪問redis的密碼:requirepass 要設(shè)置密碼
2.注釋bind 127.0.0.1
(重啟redis-server服務(wù),進入redis后要先驗證密碼,用這個命令:auth 密碼 ,然后ping一下看有沒有配置成功)
二 . idea訪問時添加auth密碼
Jedis jedis = new Jedis("服務(wù)器的外網(wǎng)ip",6379);
jedis.auth("redis的密碼");
System.out.println(jedis.ping());
(輸出PONG的話就成功了)題外話:為什么事務(wù)transaction簡稱為TX
transaction的讀法是/træn’zæk??n/
x的讀法是/?ks/
所以tx分別代表:t - tran; x-saction
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot+slf4j線程池全鏈路調(diào)用日志跟蹤問題及解決思路(二)
本文主要給大家介紹如何實現(xiàn)子線程中的traceId日志跟蹤,本文通過封裝Callable為例給大家介紹的非常詳細,需要的朋友一起看看吧2021-05-05
基于SpringBoot創(chuàng)建Web頁面并熱更新的操作步驟
SpringBoot是一個用于快速開發(fā)單個微服務(wù)的框架,它基于 Spring 框架,簡化了Spring應(yīng)用的初始化過程和開發(fā)流程,本文給大家介紹了如何基于SpringBoot創(chuàng)建Web頁面并熱更新,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-11-11
Java項目全面升級轉(zhuǎn)化經(jīng)驗(涉及JDK、Spring?boot版本及依賴管理架構(gòu))
在軟件開發(fā)領(lǐng)域,項目升級是一個必然的過程,隨著技術(shù)的不斷進步和業(yè)務(wù)需求的變化,對于舊項目的升級和優(yōu)化已成為許多企業(yè)必須面對的問題,這篇文章主要介紹了Java項目全面升級轉(zhuǎn)化的相關(guān)資料,包括JDK、Spring?boot版本及依賴管理架構(gòu),需要的朋友可以參考下2025-09-09

