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

spring?boot集成redisson的最佳實踐示例

 更新時間:2022年03月05日 15:18:00   作者:kl  
這篇文章主要為大家介紹了spring?boot集成redisson的最佳實踐示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

本文假使你了解spring boot并實踐過,非spring boot用戶可跳過也可借此研究一下。

redisson是redis的java客戶端程序,國內(nèi)外很多公司都有在用,如下,

和spring的集成中官方給出的實例也是比較多,比較方便。

集成jedis實例,xml方式

集成前引用的jar

<!--kl add redis client-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-pool/commons-pool -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.2</version>
</dependency>

 spring bean配置xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- POOL配置 -->
    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxTotal" value="300"/>
        <property name="maxIdle" value="10"/>
        <property name="maxWaitMillis" value="1000"/>
        <property name="testOnBorrow" value="true"/>
    </bean>
    <!-- jedis shard信息配置 -->
    <bean id="jedisShardInfo" class="redis.clients.jedis.JedisShardInfo">
        <constructor-arg index="0" value="${redis.host}"/>
        <constructor-arg index="1" value="${redis.port}" type="int"/>
    </bean>

    <!-- jedis shard pool配置 -->
    <bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool">
        <constructor-arg index="0" ref="jedisPoolConfig"/>
        <constructor-arg index="1">
            <list>
                <ref bean="jedisShardInfo"/>
            </list>
        </constructor-arg>
    </bean>
    <bean id="shardedJedis" factory-bean="shardedJedisPool" factory-method="getResource" />
</beans>

集成redisson實例,java bean的方式

集成前引入的jar

<!--kl add redis client-->
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>2.5.0</version>
</dependency>

javabean配置如下

/**
 * Created by kl on 2016/10/21.
 */
@Configuration
@ComponentScan
public class RedsissonConfig {
    @Bean(destroyMethod="shutdown")
    RedissonClient redisson(@Value("classpath:/conf/redisson.yaml") Resource configFile) throws IOException {
        Config config = Config.fromYAML(configFile.getInputStream());
        return Redisson.create(config);
    }
}

spring集成redis客戶端jedis以及redisson,可以提供yaml,json配置文件來實例化redissonClient,也可以使用spring的xml來配置,redisson官方給出了諸如<redisson:client>等標(biāo)簽來簡化在xml中的配置,但是如果我們的程序是spring boot,一般都是使用application.properties來配置我們應(yīng)用配置參數(shù),不想提供額外的yaml,json,xml等配置文件,雖然spring boot也支持這么做。所以如何使用application.properties的方式配置redisson呢,請看下文?

提供實例化javabean

/**
 * Created by kl on 2017/09/26.
 * redisson 客戶端配置
 */
@ConfigurationProperties(prefix = "spring.redisson")
@Configuration
public class RedissonConfig{
    private String address;
    private int connectionMinimumIdleSize = 10;
    private int idleConnectionTimeout=10000;
    private int pingTimeout=1000;
    private int connectTimeout=10000;
    private int timeout=3000;
    private int retryAttempts=3;
    private int retryInterval=1500;
    private int reconnectionTimeout=3000;
    private int failedAttempts=3;
    private String password = null;
    private int subscriptionsPerConnection=5;
    private String clientName=null;
    private int subscriptionConnectionMinimumIdleSize = 1;
    private int subscriptionConnectionPoolSize = 50;
    private int connectionPoolSize = 64;
    private int database = 0;
    private boolean dnsMonitoring = false;
    private int dnsMonitoringInterval = 5000;
    private int thread; //當(dāng)前處理核數(shù)量 * 2
    private String codec="org.redisson.codec.JsonJacksonCodec";
    @Bean(destroyMethod = "shutdown")
    RedissonClient redisson() throws Exception {
        Config config = new Config();
        config.useSingleServer().setAddress(address)
                .setConnectionMinimumIdleSize(connectionMinimumIdleSize)
                .setConnectionPoolSize(connectionPoolSize)
                .setDatabase(database)
                .setDnsMonitoring(dnsMonitoring)
                .setDnsMonitoringInterval(dnsMonitoringInterval)
                .setSubscriptionConnectionMinimumIdleSize(subscriptionConnectionMinimumIdleSize)
                .setSubscriptionConnectionPoolSize(subscriptionConnectionPoolSize)
                .setSubscriptionsPerConnection(subscriptionsPerConnection)
                .setClientName(clientName)
                .setFailedAttempts(failedAttempts)
                .setRetryAttempts(retryAttempts)
                .setRetryInterval(retryInterval)
                .setReconnectionTimeout(reconnectionTimeout)
                .setTimeout(timeout)
                .setConnectTimeout(connectTimeout)
                .setIdleConnectionTimeout(idleConnectionTimeout)
                .setPingTimeout(pingTimeout)
                .setPassword(password);
        Codec codec=(Codec)ClassUtils.forName(getCodec(),ClassUtils.getDefaultClassLoader()).newInstance();
        config.setCodec(codec);
        config.setThreads(thread);
        config.setEventLoopGroup(new NioEventLoopGroup());
        config.setUseLinuxNativeEpoll(false);
        return Redisson.create(config);
    }

注意:以上代碼不是完整的,省略了get set代碼

application.properties添加如下配置

#redis鏈接地址
spring.redisson.address=192.168.1.204:6379
#當(dāng)前處理核數(shù)量 * 2
spring.redisson.thread=4
#指定編解碼
spring.redisson.codec=org.redisson.codec.JsonJacksonCodec;
#最小空閑連接數(shù),默認(rèn)值:10,最小保持連接數(shù)(長連接)
spring.redisson.connectionMinimumIdleSize=12
#連接空閑超時,單位:毫秒 默認(rèn)10000;當(dāng)前連接池里的連接數(shù)量超過了最小空閑連接數(shù),
#而連接空閑時間超過了該數(shù)值,這些連接將會自動被關(guān)閉,并從連接池里去掉
spring.redisson.idleConnectionTimeout=10000
#ping節(jié)點超時,單位:毫秒,默認(rèn)1000
spring.redisson.pingTimeout=1000
#連接等待超時,單位:毫秒,默認(rèn)10000
spring.redisson.connectTimeout=10000
#命令等待超時,單位:毫秒,默認(rèn)3000;等待節(jié)點回復(fù)命令的時間。該時間從命令發(fā)送成功時開始計時
spring.redisson.timeout=3000
#命令失敗重試次數(shù),默認(rèn)值:3
spring.redisson.retryAttempts=2
#命令重試發(fā)送時間間隔,單位:毫秒,默認(rèn)值:1500
spring.redisson.retryInterval=1500
#重新連接時間間隔,單位:毫秒,默認(rèn)值:3000;連接斷開時,等待與其重新建立連接的時間間隔
spring.redisson.reconnectionTimeout=3000
#執(zhí)行失敗最大次數(shù), 默認(rèn)值:3;失敗后直到 reconnectionTimeout超時以后再次嘗試。
spring.redisson.failedAttempts=2
#身份驗證密碼
#spring.redisson.password=
#單個連接最大訂閱數(shù)量,默認(rèn)值:5
spring.redisson.subscriptionsPerConnection=5
#客戶端名稱
#spring.redisson.clientName=
#發(fā)布和訂閱連接的最小空閑連接數(shù),默認(rèn)值:1;Redisson內(nèi)部經(jīng)常通過發(fā)布和訂閱來實現(xiàn)許多功能。
#長期保持一定數(shù)量的發(fā)布訂閱連接是必須的
spring.redisson.subscriptionConnectionMinimumIdleSize=1
#發(fā)布和訂閱連接池大小,默認(rèn)值:50
spring.redisson.subscriptionConnectionPoolSize=50
#連接池最大容量。默認(rèn)值:64;連接池的連接數(shù)量自動彈性伸縮
spring.redisson.connectionPoolSize=64
#數(shù)據(jù)庫編號,默認(rèn)值:0
spring.redisson.database=0
#是否啟用DNS監(jiān)測,默認(rèn)值:false
spring.redisson.dnsMonitoring=false
#DNS監(jiān)測時間間隔,單位:毫秒,默認(rèn)值:5000
spring.redisson.dnsMonitoringInterval=5000

java bean中已經(jīng)給所有需要配置的值寫上了官方默認(rèn)的初始值,如果你不考慮更改默認(rèn)值,實際上你只需要在你的application.properties添加如下配置就好

#redis鏈接地址
spring.redisson.address=192.168.1.204:6379

注意:這里配置連接的模式是單機(jī)模式,如果你想通過這種配置方式配置集群模式和哨兵模式,請參考官方wiki,修改下java bean就好

githubwiki:https://github.com/redisson/redisson/wiki/

以上就是spring boot集成redisson的最佳實踐示例的詳細(xì)內(nèi)容,更多關(guān)于spring boot集成redisson實踐的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringBoot優(yōu)化接口響應(yīng)時間的九個技巧

    SpringBoot優(yōu)化接口響應(yīng)時間的九個技巧

    在實際開發(fā)中,提升接口響應(yīng)速度是一件挺重要的事,特別是在面臨大量用戶請求的時候,本文為大家整理了9個SpringBoot優(yōu)化接口響應(yīng)時間的技巧,希望對大家有所幫助
    2024-01-01
  • springboot打war包的全過程記錄

    springboot打war包的全過程記錄

    其實一般使用springboot使用打成jar包比較省事的,但也有很多童鞋是習(xí)慣使用war包的,下面這篇文章主要給大家介紹了關(guān)于springboot打war包的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • springCloud中的Sidecar多語言支持詳解

    springCloud中的Sidecar多語言支持詳解

    這篇文章主要介紹了springCloud中的Sidecar多語言支持詳解,Sidecar是將一組緊密結(jié)合的任務(wù)與主應(yīng)用程序共同放在一臺主機(jī)Host中,但會將它們部署在各自的進(jìn)程或容器中,需要的朋友可以參考下
    2024-01-01
  • Java經(jīng)典面試題最全匯總208道(四)

    Java經(jīng)典面試題最全匯總208道(四)

    這篇文章主要介紹了Java經(jīng)典面試題最全匯總208道(四),本文章內(nèi)容詳細(xì),該模塊分為了六個部分,本次為第四部分,需要的朋友可以參考下
    2023-01-01
  • 員工管理系統(tǒng)java版

    員工管理系統(tǒng)java版

    這篇文章主要為大家詳細(xì)介紹了java版的員工管理系統(tǒng),,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 手把手帶你分析SpringBoot自動裝配完成了Ribbon哪些核心操作

    手把手帶你分析SpringBoot自動裝配完成了Ribbon哪些核心操作

    這篇文章主要介紹了詳解Spring Boot自動裝配Ribbon哪些核心操作的哪些操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • Spring中@Autowired注解作用在方法上和屬性上說明

    Spring中@Autowired注解作用在方法上和屬性上說明

    這篇文章主要介紹了Spring中@Autowired注解作用在方法上和屬性上說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 基于Spring-AOP實現(xiàn)自定義分片工具詳解

    基于Spring-AOP實現(xiàn)自定義分片工具詳解

    隨著數(shù)據(jù)量的增長,在與其他系統(tǒng)交互時,批量接口會出現(xiàn)超時現(xiàn)象,發(fā)現(xiàn)原批量接口在實現(xiàn)時,沒有做分片處理。由于與其他系統(tǒng)交互比較多,一個一個接口去做分片優(yōu)化,改動量較大,所以考慮通過AOP解決此問題,感興趣的可以了解一下
    2022-11-11
  • elasticsearch設(shè)置賬號和密碼的完整代碼示例

    elasticsearch設(shè)置賬號和密碼的完整代碼示例

    這篇文章主要介紹了如何在Docker中安裝和配置Elasticsearch(ES)和Kibana,描述了如何設(shè)置Kibana的用戶和密碼,并解決由于ES默認(rèn)禁止使用超級用戶登錄Kibana的問題,需要的朋友可以參考下
    2025-01-01
  • Spring Boot異常處理問題小結(jié)

    Spring Boot異常處理問題小結(jié)

    在 Spring Boot 中,異常處理是一個重要的部分,可以允許開發(fā)者優(yōu)雅地處理應(yīng)用程序中可能發(fā)生的錯誤和異常,這篇文章主要介紹了Spring Boot異常處理問題小結(jié),需要的朋友可以參考下
    2024-05-05

最新評論

珠海市| 永平县| 沧州市| 称多县| 库尔勒市| 兴义市| 石屏县| 星子县| 招远市| 敦化市| 嘉兴市| 三亚市| 阆中市| 崇阳县| 息烽县| 台中市| 定州市| 喀喇沁旗| 延边| 张北县| 西畴县| 九寨沟县| 房产| 桃园县| 阳高县| 高碑店市| 淳化县| 曲麻莱县| 建始县| 高唐县| 平昌县| 宁远县| 萍乡市| 邻水| 鹤壁市| 六安市| 于田县| 泰兴市| 沁源县| 通许县| 阿尔山市|