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

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

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

一、前言

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

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

工程結(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)
                // 連接空閑超時,如果當(dāng)前連接池里的連接數(shù)量超過了最小空閑連接數(shù),而同時有連接空閑時間超過了該數(shù)值,那么這些連接將會自動被關(guān)閉,并從連接池里去掉。時間單位是毫秒。
                .setIdleConnectionTimeout(10000)
                // 連接超時,同節(jié)點建立連接時的等待超時。時間單位是毫秒。
                .setConnectTimeout(10000)
                // 命令等待超時,等待節(jié)點回復(fù)命令的時間。該時間從命令發(fā)送成功時開始計時。
                .setTimeout(1000)
                // 命令失敗重試次數(shù),如果嘗試達到 retryAttempts(命令失敗重試次數(shù)) 仍然不能將命令發(fā)送至某個指定的節(jié)點時,將拋出錯誤。如果嘗試在此限制之內(nèi)發(fā)送成功,則開始啟用 timeout(命令等待超時) 計時
                .setRetryAttempts(3)
                // 命令重試發(fā)送時間間隔,在一條命令發(fā)送失敗以后,等待重試發(fā)送的時間間隔。時間單位是毫秒。
                .setRetryInterval(1500)
                // 每個連接的最大訂閱數(shù)量。
                .setSubscriptionsPerConnection(5)
                // 用于發(fā)布和訂閱連接的最小保持連接數(shù)(長連接)。Redisson內(nèi)部經(jīng)常通過發(fā)布和訂閱來實現(xiàn)許多功能。長期保持一定數(shù)量的發(fā)布訂閱連接是必須的。
                .setSubscriptionConnectionMinimumIdleSize(1)
                // 用于發(fā)布和訂閱連接的連接池最大容量。連接池的連接數(shù)量自動彈性伸縮。
                .setSubscriptionConnectionPoolSize(50)
                // 最小保持連接數(shù)(長連接)。長期保持一定數(shù)量的連接有利于提高瞬時寫入反應(yīng)速度。
                .setConnectionMinimumIdleSize(50)
                // 連接池最大容量。連接池的連接數(shù)量自動彈性伸縮。
                .setConnectionPoolSize(100)
                // 監(jiān)測DNS的變化情況的時間間隔。時間單位是毫秒。
                .setDnsMonitoringInterval(5000)
                // PING 心跳時間,單位毫秒。
                .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非常耗時,基本在2秒-4秒左右)
        return Redisson.create(config);
    }
}

2.3、添加啟動類

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、添加測試類測試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的實現(xiàn)方法的文章就介紹到這了,更多相關(guān)SpringBoot Redisson操作Redis內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot統(tǒng)一數(shù)據(jù)返回格式的實現(xiàn)示例

    SpringBoot統(tǒng)一數(shù)據(jù)返回格式的實現(xiàn)示例

    本文主要介紹了SpringBoot統(tǒng)一數(shù)據(jù)返回格式,它提高了代碼的可維護性和一致性,并改善了客戶端與服務(wù)端之間的通信,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • Spring中使用Async進行異步功能開發(fā)實戰(zhàn)示例(大文件上傳為例)

    Spring中使用Async進行異步功能開發(fā)實戰(zhàn)示例(大文件上傳為例)

    本文以大文件上傳為例,首先講解在未進行程序異步化時,程序的運行機制和具體表現(xiàn),然后講解如何進行異步化的改造,讓程序進行異步執(zhí)行,通過本文不僅能讓你掌握如何進行Event的事件開發(fā),同時還能掌握在Spring中如何進行異步開發(fā),熟悉@Async的具體用法,感興趣的朋友一起看看吧
    2024-08-08
  • Mybatis的SqlRunner執(zhí)行流程實現(xiàn)

    Mybatis的SqlRunner執(zhí)行流程實現(xiàn)

    MyBatis提供了一個用于操作數(shù)據(jù)庫的SqlRunner工具類,對JDBC做了很好的封裝,本文主要介紹了Mybatis的SqlRunner執(zhí)行流程實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • Spring擴展之基于HandlerMapping實現(xiàn)接口灰度發(fā)布實例

    Spring擴展之基于HandlerMapping實現(xiàn)接口灰度發(fā)布實例

    這篇文章主要介紹了Spring擴展之基于HandlerMapping實現(xiàn)接口灰度發(fā)布實例,灰度發(fā)布是指在黑與白之間,能夠平滑過渡的一種發(fā)布方式,灰度發(fā)布可以保證整體系統(tǒng)的穩(wěn)定,在初始灰度的時候就可以發(fā)現(xiàn)、調(diào)整問題,以保證其影響度,需要的朋友可以參考下
    2023-08-08
  • 一文帶你認識Java中的Object類和深淺拷貝

    一文帶你認識Java中的Object類和深淺拷貝

    任何變成語言中,其實都有淺拷貝和深拷貝的概念,Java 中也不例外,下面這篇文章主要給大家介紹了關(guān)于Java中Object類和深淺拷貝的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • java唯一字符串ID生成方案詳解

    java唯一字符串ID生成方案詳解

    這篇文章主要給大家介紹了關(guān)于java唯一字符串ID生成方案的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • MyBatis緩存實現(xiàn)原理及代碼實例解析

    MyBatis緩存實現(xiàn)原理及代碼實例解析

    這篇文章主要介紹了MyBatis緩存實現(xiàn)原理及代碼實例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • Java?中?hashCode()?與?equals()?的關(guān)系(面試)

    Java?中?hashCode()?與?equals()?的關(guān)系(面試)

    這篇文章主要介紹了Java中hashCode()與equals()的關(guān)系,ava中hashCode()和equals()的關(guān)系是面試中的常考點,文章對hashCode與equals的關(guān)系做出詳解,需要的小伙伴可以參考一下
    2022-09-09
  • Java?@Accessors注解圖文詳解

    Java?@Accessors注解圖文詳解

    @Accessors用于改變@Data生成的getter和setter方法的生成結(jié)果,下面這篇文章主要給大家介紹了關(guān)于Java?@Accessors注解的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • Java Redis Template批量查詢指定鍵值對的實現(xiàn)

    Java Redis Template批量查詢指定鍵值對的實現(xiàn)

    本文主要介紹了Java Redis Template批量查詢指定鍵值對的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07

最新評論