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

SpringBoot集成Redisson操作Redis的實(shí)現(xiàn)方法

 更新時(shí)間:2024年03月04日 10:43:24   作者:kerwin_code  
Redisson是一個(gè)用于Java的Redis客戶端,它提供了在分布式環(huán)境下操作Redis數(shù)據(jù)庫(kù)的簡(jiǎn)單、高效的方式,本文主要介紹了SpringBoot集成Redisson操作Redis的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的可以了解一下

一、前言

Redisson 是一個(gè)在 Redis 的基礎(chǔ)上實(shí)現(xiàn)的 Java 駐內(nèi)存數(shù)據(jù)網(wǎng)格,Redisson相比較與Jedis和Lettuce來(lái)說(shuō)最大的區(qū)別就是,Redisson提供了很多分布式相關(guān)操作服務(wù),例如,分布式鎖,分布式集合,可通過(guò)Redis支持延遲隊(duì)列等,一般建議Lettuce + Redisson一起使用,需要使用Redis高級(jí)功能就使用Redisson,如果不需要使用高級(jí)功能優(yōu)先推薦使用Lettuce。

二、基礎(chǔ)集成配置(redis單節(jié)點(diǎn))

工程結(jié)構(gòu)

在這里插入圖片描述

2.1、POM

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.12.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson-spring-boot-starter</artifactId>
            <version>3.17.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

2.2、添加配置文件

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.codec.JsonJacksonCodec;
import org.redisson.config.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RedissonConfig {

    private String redissonUrl = "redis://172.16.8.169:6379";
    private String password = "123456";
    private Integer datebase = 0;

    @Bean
    public RedissonClient redisson() {
        Config config = new Config();
        config.useSingleServer()
                .setAddress(redissonUrl)
                .setPassword((password == null || "".equals(password)) ? null : password)
                .setDatabase(datebase)
                // 連接空閑超時(shí),如果當(dāng)前連接池里的連接數(shù)量超過(guò)了最小空閑連接數(shù),而同時(shí)有連接空閑時(shí)間超過(guò)了該數(shù)值,那么這些連接將會(huì)自動(dòng)被關(guān)閉,并從連接池里去掉。時(shí)間單位是毫秒。
                .setIdleConnectionTimeout(10000)
                // 連接超時(shí),同節(jié)點(diǎn)建立連接時(shí)的等待超時(shí)。時(shí)間單位是毫秒。
                .setConnectTimeout(10000)
                // 命令等待超時(shí),等待節(jié)點(diǎn)回復(fù)命令的時(shí)間。該時(shí)間從命令發(fā)送成功時(shí)開(kāi)始計(jì)時(shí)。
                .setTimeout(1000)
                // 命令失敗重試次數(shù),如果嘗試達(dá)到 retryAttempts(命令失敗重試次數(shù)) 仍然不能將命令發(fā)送至某個(gè)指定的節(jié)點(diǎn)時(shí),將拋出錯(cuò)誤。如果嘗試在此限制之內(nèi)發(fā)送成功,則開(kāi)始啟用 timeout(命令等待超時(shí)) 計(jì)時(shí)
                .setRetryAttempts(3)
                // 命令重試發(fā)送時(shí)間間隔,在一條命令發(fā)送失敗以后,等待重試發(fā)送的時(shí)間間隔。時(shí)間單位是毫秒。
                .setRetryInterval(1500)
                // 每個(gè)連接的最大訂閱數(shù)量。
                .setSubscriptionsPerConnection(5)
                // 用于發(fā)布和訂閱連接的最小保持連接數(shù)(長(zhǎng)連接)。Redisson內(nèi)部經(jīng)常通過(guò)發(fā)布和訂閱來(lái)實(shí)現(xiàn)許多功能。長(zhǎng)期保持一定數(shù)量的發(fā)布訂閱連接是必須的。
                .setSubscriptionConnectionMinimumIdleSize(1)
                // 用于發(fā)布和訂閱連接的連接池最大容量。連接池的連接數(shù)量自動(dòng)彈性伸縮。
                .setSubscriptionConnectionPoolSize(50)
                // 最小保持連接數(shù)(長(zhǎng)連接)。長(zhǎng)期保持一定數(shù)量的連接有利于提高瞬時(shí)寫(xiě)入反應(yīng)速度。
                .setConnectionMinimumIdleSize(50)
                // 連接池最大容量。連接池的連接數(shù)量自動(dòng)彈性伸縮。
                .setConnectionPoolSize(100)
                // 監(jiān)測(cè)DNS的變化情況的時(shí)間間隔。時(shí)間單位是毫秒。
                .setDnsMonitoringInterval(5000)
                // PING 心跳時(shí)間,單位毫秒。
                .setPingConnectionInterval(10000);
        // 0 cpu * 2
        config.setThreads(0);
        // 0 cpu * 2
        config.setNettyThreads(0);
        // 使用json序列化方式
        config.setCodec(new JsonJacksonCodec());

        //創(chuàng)建客戶端(發(fā)現(xiàn)創(chuàng)建RedissonClient非常耗時(shí),基本在2秒-4秒左右)
        return Redisson.create(config);
    }
}

2.3、添加啟動(dòng)類

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class RedissonApplication {
    public static void main(String[] args) {
        SpringApplication.run(RedissonApplication.class);
    }
}

2.4、添加測(cè)試類測(cè)試redisson操作redis

import org.junit.Test;
import org.junit.runner.RunWith;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest(classes =  RedissonApplication.class)
public class RedissonTest {
    @Autowired
    private RedissonClient redissonClient;
    @Test
    public void t1(){
        String key = "key1";
        System.out.println("獲取Bucket");
        RBucket<Object> bucket = redissonClient.getBucket(key);
        System.out.println("插入數(shù)據(jù)到redis");
        bucket.set("value1");
        Object value = bucket.get();
        System.out.println("從redis中獲取到值為 "+value);
        Boolean delete = bucket.delete();
        System.out.println("刪除redis中值 "+delete);
    }
}

到此這篇關(guān)于SpringBoot集成Redisson操作Redis的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)SpringBoot Redisson操作Redis內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java19新特性中結(jié)構(gòu)化并發(fā)的使用

    Java19新特性中結(jié)構(gòu)化并發(fā)的使用

    Java19在并發(fā)編程領(lǐng)域引入了一個(gè)全新的概念:結(jié)構(gòu)化并發(fā),這一特性旨在簡(jiǎn)化并發(fā)任務(wù)的管理,提升多線程程序的可維護(hù)性和安全性,使其生命周期和控制流更加有序和明確,感興趣的可以了解一下
    2024-09-09
  • elasticsearch集群cluster示例詳解

    elasticsearch集群cluster示例詳解

    這篇文章主要為大家介紹了elasticsearch集群cluster示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • java垃圾收集器與內(nèi)存分配策略詳解

    java垃圾收集器與內(nèi)存分配策略詳解

    本篇文章主要介紹了Java垃圾收集器與內(nèi)存分配策略的方法和原理總結(jié),Java垃圾回收器是Java虛擬機(jī)的重要模塊,具有一定的參考價(jià)值,有興趣的可以了解一下
    2021-08-08
  • Java常用數(shù)字工具類 大數(shù)乘法、加法、減法運(yùn)算(2)

    Java常用數(shù)字工具類 大數(shù)乘法、加法、減法運(yùn)算(2)

    這篇文章主要為大家詳細(xì)介紹了Java常用數(shù)字工具類,大數(shù)乘法、加法、減法運(yùn)算,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • SpringBoot事務(wù)失效的七種場(chǎng)景分析及解決方案

    SpringBoot事務(wù)失效的七種場(chǎng)景分析及解決方案

    Spring Boot 中的事務(wù)失效通常是由于代理機(jī)制、異常處理、傳播行為配置不當(dāng)?shù)仍蛞鸬?通過(guò)合理配置和排查,可以有效避免事務(wù)失效問(wèn)題,所以本文給大家總結(jié)了SpringBoot事務(wù)失效的七種場(chǎng)景分析及解決方案,需要的朋友可以參考下
    2025-05-05
  • 使用@PropertySource讀取配置文件通過(guò)@Value進(jìn)行參數(shù)注入

    使用@PropertySource讀取配置文件通過(guò)@Value進(jìn)行參數(shù)注入

    這篇文章主要介紹了使用@PropertySource讀取配置文件通過(guò)@Value進(jìn)行參數(shù)注入,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 詳解MyBatis延遲加載是如何實(shí)現(xiàn)的

    詳解MyBatis延遲加載是如何實(shí)現(xiàn)的

    MyBatis 的延遲加載(懶加載)特性允許在需要使用關(guān)聯(lián)對(duì)象數(shù)據(jù)時(shí)才進(jìn)行加載,而不是在執(zhí)行主查詢時(shí)就加載所有相關(guān)數(shù)據(jù),我們將通過(guò)以下幾個(gè)方面來(lái)深入了解MyBatis的延遲加載實(shí)現(xiàn)機(jī)制,需要的朋友可以參考下
    2024-07-07
  • Apache Commons Math3學(xué)習(xí)之?dāng)?shù)值積分實(shí)例代碼

    Apache Commons Math3學(xué)習(xí)之?dāng)?shù)值積分實(shí)例代碼

    這篇文章主要介紹了Apache Commons Math3學(xué)習(xí)之?dāng)?shù)值積分實(shí)例代碼,涉及使用辛普森積分的例子,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • sentinel流量控制框架(目錄設(shè)置)

    sentinel流量控制框架(目錄設(shè)置)

    Sentinel?是面向分布式服務(wù)架構(gòu)的高可用流量防護(hù)組件幫助開(kāi)發(fā)者保障微服務(wù)的穩(wěn)定性,本文重點(diǎn)給大家介紹sentinel流量控制框架的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2022-03-03
  • Java面試題沖刺第二十九天--JVM3

    Java面試題沖刺第二十九天--JVM3

    這篇文章主要為大家分享了最有價(jià)值的三道關(guān)于JVM的面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-09-09

最新評(píng)論

乐清市| 邢台市| 伊宁县| 定兴县| 花莲县| 宁乡县| 辉南县| 黔江区| 泽普县| 长沙县| 阳春市| 凤山市| 灌南县| 金溪县| 蓬莱市| 德庆县| 九寨沟县| 吴川市| 綦江县| 阿合奇县| 鹤峰县| 丹巴县| 越西县| 于都县| 余江县| 景谷| 高平市| 新竹县| 佛坪县| 攀枝花市| 会东县| 邵武市| 任丘市| 龙山县| 武强县| 红河县| 云和县| 景洪市| 翁牛特旗| 西安市| 乌兰察布市|