中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Jedis使用Redis事務的方法是什么

發布時間:2023-03-17 16:04:30 來源:億速云 閱讀:137 作者:iii 欄目:開發技術

本篇內容主要講解“Jedis使用Redis事務的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Jedis使用Redis事務的方法是什么”吧!

什么是Jedis?

什么是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

Jedis使用Redis事務的方法是什么

執行結果:

Jedis使用Redis事務的方法是什么

string的其他方法:

Jedis使用Redis事務的方法是什么

list

Jedis使用Redis事務的方法是什么

執行結果:

Jedis使用Redis事務的方法是什么

set

Jedis使用Redis事務的方法是什么

Jedis使用Redis事務的方法是什么

執行結果:

Jedis使用Redis事務的方法是什么

hash

Jedis使用Redis事務的方法是什么

執行結果:

Jedis使用Redis事務的方法是什么

zset

也是一樣,在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事務的方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴林左旗| 仙居县| 四平市| 资阳市| 株洲县| 临高县| 前郭尔| 桂阳县| 金山区| 平山县| 乐业县| 榆树市| 紫金县| 榆林市| 武城县| 华阴市| 呼玛县| 海盐县| 金溪县| 叙永县| 西畴县| 庄浪县| 蒲城县| 筠连县| 泰和县| 新巴尔虎左旗| 澄迈县| 苍溪县| 岳阳县| 九江县| 清远市| 嘉善县| 黄大仙区| 涟源市| 湘潭市| 宁都县| 贵南县| 九龙坡区| 灵宝市| 万荣县| 福贡县|