微前端架构如何改变企业的开发模式与效率提升
1315
2022-10-24
spring boot集成redisson的最佳实践示例
目录前言集成jedis实例,xml方式集成前引用的jar springbean配置xml集成redisson实例,javabean的方式集成前引入的jarjavabean配置如下提供实例化javabeanapplication.properties添加如下配置
前言
本文假使你了解spring boot并实践过,非spring boot用户可跳过也可借此研究一下。
redisson是redis的java客户端程序,国内外很多公司都有在用,如下,
和spring的集成中官方给出的实例也是比较多,比较方便。
集成jedis实例,xml方式
集成前引用的jar
spring bean配置xml
xmlns:xsi="http://w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans.xsd">
xmlns:xsi="http://w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans.xsd">
集成redisson实例,java bean的方式
集成前引入的jar
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官方给出了诸如
提供实例化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 subscriptionConnectionMinimumIdleSikCQVbze = 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(),ClassUhttp://tils.getDefaultClassLoader()).newkCQVbInstance();
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就好
githubwiki:https://github.com/redisson/redisson/wiki/
以上就是spring boot集成redisson的最佳实践示例的详细内容,更多关于spring boot集成redisson实践的资料请关注我们其它相关文章!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~