亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

spring?boot集成redisson的方法

發布時間:2022-03-06 10:48:22 來源:億速云 閱讀:1449 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“spring boot集成redisson的方法”,內容詳細,步驟清晰,細節處理妥當,希望這篇“spring boot集成redisson的方法”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

    前言

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

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

    spring?boot集成redisson的方法

    和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>等標簽來簡化在xml中的配置,但是如果我們的程序是spring boot,一般都是使用application.properties來配置我們應用配置參數,不想提供額外的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; //當前處理核數量 * 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
    #當前處理核數量 * 2
    spring.redisson.thread=4
    #指定編解碼
    spring.redisson.codec=org.redisson.codec.JsonJacksonCodec;
    #最小空閑連接數,默認值:10,最小保持連接數(長連接)
    spring.redisson.connectionMinimumIdleSize=12
    #連接空閑超時,單位:毫秒 默認10000;當前連接池里的連接數量超過了最小空閑連接數,
    #而連接空閑時間超過了該數值,這些連接將會自動被關閉,并從連接池里去掉
    spring.redisson.idleConnectionTimeout=10000
    #ping節點超時,單位:毫秒,默認1000
    spring.redisson.pingTimeout=1000
    #連接等待超時,單位:毫秒,默認10000
    spring.redisson.connectTimeout=10000
    #命令等待超時,單位:毫秒,默認3000;等待節點回復命令的時間。該時間從命令發送成功時開始計時
    spring.redisson.timeout=3000
    #命令失敗重試次數,默認值:3
    spring.redisson.retryAttempts=2
    #命令重試發送時間間隔,單位:毫秒,默認值:1500
    spring.redisson.retryInterval=1500
    #重新連接時間間隔,單位:毫秒,默認值:3000;連接斷開時,等待與其重新建立連接的時間間隔
    spring.redisson.reconnectionTimeout=3000
    #執行失敗最大次數, 默認值:3;失敗后直到 reconnectionTimeout超時以后再次嘗試。
    spring.redisson.failedAttempts=2
    #身份驗證密碼
    #spring.redisson.password=
    #單個連接最大訂閱數量,默認值:5
    spring.redisson.subscriptionsPerConnection=5
    #客戶端名稱
    #spring.redisson.clientName=
    #發布和訂閱連接的最小空閑連接數,默認值:1;Redisson內部經常通過發布和訂閱來實現許多功能。
    #長期保持一定數量的發布訂閱連接是必須的
    spring.redisson.subscriptionConnectionMinimumIdleSize=1
    #發布和訂閱連接池大小,默認值:50
    spring.redisson.subscriptionConnectionPoolSize=50
    #連接池最大容量。默認值:64;連接池的連接數量自動彈性伸縮
    spring.redisson.connectionPoolSize=64
    #數據庫編號,默認值:0
    spring.redisson.database=0
    #是否啟用DNS監測,默認值:false
    spring.redisson.dnsMonitoring=false
    #DNS監測時間間隔,單位:毫秒,默認值:5000
    spring.redisson.dnsMonitoringInterval=5000

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

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

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

    讀到這里,這篇“spring boot集成redisson的方法”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    深水埗区| 昆山市| 绥阳县| 呼玛县| 黑龙江省| 扎赉特旗| 佛学| 巨野县| 娄底市| 湾仔区| 恩施市| 彰化县| 聊城市| 凤翔县| 大港区| 兴仁县| 宝清县| 灵武市| 嘉荫县| 南京市| 崇明县| 漯河市| 绍兴市| 扬中市| 潜江市| 五莲县| 吉安市| 武夷山市| 屏南县| 涟水县| 化隆| 河北省| 龙里县| 赤壁市| 灵寿县| 双流县| 七台河市| 黄平县| 扎赉特旗| 安塞县| 肇州县|