文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

spring boot集成redisson的方法

2023-06-29 09:37

关注

本文小编为大家详细介绍“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配置如下

@Configuration@ComponentScanpublic 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

@ConfigurationProperties(prefix = "spring.redisson")@Configurationpublic 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#当前处理核数量 * 2spring.redisson.thread=4#指定编解码spring.redisson.codec=org.redisson.codec.JsonJacksonCodec;#最小空闲连接数,默认值:10,最小保持连接数(长连接)spring.redisson.connectionMinimumIdleSize=12#连接空闲超时,单位:毫秒 默认10000;当前连接池里的连接数量超过了最小空闲连接数,#而连接空闲时间超过了该数值,这些连接将会自动被关闭,并从连接池里去掉spring.redisson.idleConnectionTimeout=10000#ping节点超时,单位:毫秒,默认1000spring.redisson.pingTimeout=1000#连接等待超时,单位:毫秒,默认10000spring.redisson.connectTimeout=10000#命令等待超时,单位:毫秒,默认3000;等待节点回复命令的时间。该时间从命令发送成功时开始计时spring.redisson.timeout=3000#命令失败重试次数,默认值:3spring.redisson.retryAttempts=2#命令重试发送时间间隔,单位:毫秒,默认值:1500spring.redisson.retryInterval=1500#重新连接时间间隔,单位:毫秒,默认值:3000;连接断开时,等待与其重新建立连接的时间间隔spring.redisson.reconnectionTimeout=3000#执行失败最大次数, 默认值:3;失败后直到 reconnectionTimeout超时以后再次尝试。spring.redisson.failedAttempts=2#身份验证密码#spring.redisson.password=#单个连接最大订阅数量,默认值:5spring.redisson.subscriptionsPerConnection=5#客户端名称#spring.redisson.clientName=#发布和订阅连接的最小空闲连接数,默认值:1;Redisson内部经常通过发布和订阅来实现许多功能。#长期保持一定数量的发布订阅连接是必须的spring.redisson.subscriptionConnectionMinimumIdleSize=1#发布和订阅连接池大小,默认值:50spring.redisson.subscriptionConnectionPoolSize=50#连接池最大容量。默认值:64;连接池的连接数量自动弹性伸缩spring.redisson.connectionPoolSize=64#数据库编号,默认值:0spring.redisson.database=0#是否启用DNS监测,默认值:falsespring.redisson.dnsMonitoring=false#DNS监测时间间隔,单位:毫秒,默认值:5000spring.redisson.dnsMonitoringInterval=5000

java bean中已经给所有需要配置的值写上了官方默认的初始值,如果你不考虑更改默认值,实际上你只需要在你的application.properties添加如下配置就好

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

注意:这里配置连接的模式是单机模式,如果你想通过这种配置方式配置集群模式和哨兵模式,请参考官方wiki,修改下java bean就好

读到这里,这篇“spring boot集成redisson的方法”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯