欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(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連不上遠程服務(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)文章

  • 基于javaMybatis存進時間戳的問題

    基于javaMybatis存進時間戳的問題

    這篇文章主要介紹了javaMybatis存進時間戳的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java創(chuàng)建線程三種方式的優(yōu)缺點

    Java創(chuàng)建線程三種方式的優(yōu)缺點

    今天小編就為大家分享一篇關(guān)于Java創(chuàng)建線程三種方式的優(yōu)缺點,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 基于Java實現(xiàn)經(jīng)典蜘蛛紙牌游戲

    基于Java實現(xiàn)經(jīng)典蜘蛛紙牌游戲

    《蜘蛛紙牌》(Ancient?Spider)?是由Oberon?Games開發(fā)的一款休閑益智類游戲。本文將利用Java語言實現(xiàn)這一經(jīng)典游戲,需要的可以參考一下
    2022-05-05
  • SpringBoot使用開發(fā)環(huán)境application.properties問題

    SpringBoot使用開發(fā)環(huán)境application.properties問題

    這篇文章主要介紹了SpringBoot使用開發(fā)環(huán)境application.properties問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • springboot中@Async默認線程池導(dǎo)致OOM問題

    springboot中@Async默認線程池導(dǎo)致OOM問題

    這篇文章主要介紹了springboot中@Async默認線程池導(dǎo)致OOM問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 基于SpringBoot實現(xiàn)圖片上傳與顯示

    基于SpringBoot實現(xiàn)圖片上傳與顯示

    這篇文章主要為大家詳細介紹了基于SpringBoot實現(xiàn)圖片上傳與顯示,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • 利用idea生成webservice客戶端超詳解步驟(wsdl文件的使用)

    利用idea生成webservice客戶端超詳解步驟(wsdl文件的使用)

    這篇文章主要給大家介紹了關(guān)于利用idea生成webservice客戶端超詳解步驟,第一次接觸webservice,從采坑到采坑,算是了解了一些,明白了一些,文中通過代碼以及圖文介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • netty中pipeline異常事件分析

    netty中pipeline異常事件分析

    這篇文章主要為大家介紹了netty中pipeline異常事件分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Java中@ConditionalOnProperty注解使用

    Java中@ConditionalOnProperty注解使用

    在Spring?Boot中,@ConditionalOnProperty注解是一種方便的工具,用于根據(jù)應(yīng)用程序配置文件中的屬性值來控制Bean的創(chuàng)建和加載,本文就來介紹一下Java中@ConditionalOnProperty注解使用,感興趣的可以了解一下
    2023-11-11
  • Java 十進制轉(zhuǎn)二、八、十六進制的字符串

    Java 十進制轉(zhuǎn)二、八、十六進制的字符串

    本文主要介紹了十進制轉(zhuǎn)二進制;十進制轉(zhuǎn)八進制;十進制轉(zhuǎn)十六進制的方法,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02

最新評論