最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于Jedis的用法以及Jedis使用Redis事務(wù)

 更新時間:2023年03月17日 15:00:47   作者:茂桑  
這篇文章主要介紹了關(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連不上遠(yuǎn)程服務(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)文章

  • RabbitMQ實現(xiàn)消費端限流的步驟

    RabbitMQ實現(xiàn)消費端限流的步驟

    消費者端限流的主要目的是控制消費者每次從 RabbitMQ 中獲取的消息數(shù)量,從而實現(xiàn)消息處理的流量控制,這篇文章主要介紹了RabbitMQ如何實現(xiàn)消費端限流,需要的朋友可以參考下
    2024-03-03
  • 如何讓Spring Rest 接口中路徑參數(shù)可選

    如何讓Spring Rest 接口中路徑參數(shù)可選

    這篇文章主要介紹了如何讓Spring Rest 接口中路徑參數(shù)可選,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • SpringBoot+slf4j線程池全鏈路調(diào)用日志跟蹤問題及解決思路(二)

    SpringBoot+slf4j線程池全鏈路調(diào)用日志跟蹤問題及解決思路(二)

    本文主要給大家介紹如何實現(xiàn)子線程中的traceId日志跟蹤,本文通過封裝Callable為例給大家介紹的非常詳細(xì),需要的朋友一起看看吧
    2021-05-05
  • 如何通過zuul添加或修改請求參數(shù)

    如何通過zuul添加或修改請求參數(shù)

    這篇文章主要介紹了如何通過zuul添加或修改請求參數(shù)的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • SpringBoot實現(xiàn)過濾敏感詞的示例代碼

    SpringBoot實現(xiàn)過濾敏感詞的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用SpringBoot實現(xiàn)過濾敏感詞功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動手嘗試一下
    2022-08-08
  • java中對字符串每個字符統(tǒng)計的方法

    java中對字符串每個字符統(tǒng)計的方法

    java中對字符串每個字符統(tǒng)計的方法,需要的朋友可以參考一下
    2013-03-03
  • 基于SpringBoot創(chuàng)建Web頁面并熱更新的操作步驟

    基于SpringBoot創(chuàng)建Web頁面并熱更新的操作步驟

    SpringBoot是一個用于快速開發(fā)單個微服務(wù)的框架,它基于 Spring 框架,簡化了Spring應(yīng)用的初始化過程和開發(fā)流程,本文給大家介紹了如何基于SpringBoot創(chuàng)建Web頁面并熱更新,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Java項目全面升級轉(zhuǎn)化經(jīng)驗(涉及JDK、Spring?boot版本及依賴管理架構(gòu))

    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
  • Java中Function的使用及說明

    Java中Function的使用及說明

    這篇文章主要介紹了Java中Function的使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Java自定義異常類的實例詳解

    Java自定義異常類的實例詳解

    這篇文章主要介紹了Java自定義異常類的實例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家學(xué)習(xí)理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-09-09

最新評論

蒲城县| 广德县| 闽侯县| 岑溪市| 吴堡县| 且末县| 漾濞| 阳原县| 宁城县| 安泽县| 育儿| 岳普湖县| 乡宁县| 称多县| 加查县| 城口县| 徐闻县| 于都县| 无为县| 樟树市| 抚松县| 建湖县| 五家渠市| 徐闻县| 武邑县| 修文县| 甘南县| 册亨县| 朔州市| 绥宁县| 西藏| 桂东县| 新宾| 高安市| 贵阳市| 河北区| 沾化县| 波密县| 文化| 六安市| 西华县|