redissonclient类_Redisson框架以及使用案例入门
Redisson是架设在Redis基础上的一个Java驻内存数据网格Java驻内存数据网格(In-Memory Data Grid)。
Redisson介绍
1、Redisson是架设在Redis基础上的一个java驻内存数据网格。
2、Redisson在基于NIO的Netty框架上,充分的利用了Redis键值数据库提供的一系列优势。
3、在java使用工具包中常用接口的基础上,为使用者提供了一系列具有分布式特性的常用工具类。
4、使得原本作为协调单机多线程并发程序的工具包获得了协调分布式多机多线程并发系统的能力,大大降低了设计和研发大规模分布式系统的难度。
5、同时结合各富特色的分布式服务,更进一步简化了分布式环境中程序相互之间的协作。
Redisson官方网站
1、官网:https://redisson.org
2、Github:https://github.com/redisson/
3、wiki:https://github.com/redisson/redisson/wiki
Redisson功能
1、支持同步/异步/异步流/管道流方式连接
2、多样化数据序列化
3、集合数据分片
4、分布式对象
5、分布式集合
6、分布式锁和同步器
7、分布式服务
8、独立节点模式
9、三方框架整合
pom.xml
org.redisson
redisson
3.3.2
程序化配置方法package com.what21.redisson;
import java.io.IOException;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
/**
* 程序化配置方法
*/
public class FirstApp {
public static void main(String args[]) throws IOException {
Config config = new Config();
config.useSingleServer().setAddress("127.0.0.1:6379");
RedissonClient redisson = Redisson.create(config);
String json = redisson.getConfig().toJSON().toString();
System.out.println(json);
}
}
文件方式配置{
"singleServerConfig": {
"idleConnectionTimeout": 10000,
"pingTimeout": 1000,
"connectTimeout": 10000,
"timeout": 3000,
"retryAttempts": 3,
"retryInterval": 1500,
"reconnectionTimeout": 3000,
"failedAttempts": 3,
"subscriptionsPerConnection": 5,
"address": "redis://127.0.0.1:6379",
"subscriptionConnectionMinimumIdleSize": 1,
"subscriptionConnectionPoolSize": 50,
"connectionMinimumIdleSize": 10,
"connectionPoolSize": 64,
"database": 0,
"dnsMonitoring": false,
"dnsMonitoringInterval": 5000
},
"threads": 0,
"nettyThreads": 0,
"codec": {
"class": "org.redisson.codec.JsonJacksonCodec"
},
"codecProvider": {
"class": "org.redisson.codec.DefaultCodecProvider"
},
"resolverProvider": {
"class": "org.redisson.liveobject.provider.DefaultResolverProvider"
},
"redissonReferenceEnabled": true,
"useLinuxNativeEpoll": false
}package com.what21.redisson;
import java.io.File;
import java.io.IOException;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
/**
* 程序化配置方法
*/
public class SecondApp {
public static void main(String[] args) throws IOException {
Config config = Config.fromJSON(new File("d://config-file.json"));
RedissonClient redisson = Redisson.create(config);
String json = redisson.getConfig().toJSON().toString();
System.out.println(json);
}
}singleServerConfig:
idleConnectionTimeout: 10000
pingTimeout: 1000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
reconnectionTimeout: 3000
failedAttempts: 3
subscriptionsPerConnection: 5
address: redis://127.0.0.1:6379
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
connectionMinimumIdleSize: 10
connectionPoolSize: 64
database: 0
dnsMonitoring: false
dnsMonitoringInterval: 5000
threads: 0
nettyThreads: 0
codec:
class: org.redisson.codec.JsonJacksonCodec
codecProvider:
class: org.redisson.codec.DefaultCodecProvider
resolverProvider:
class: org.redisson.liveobject.provider.DefaultResolverProvider
redissonReferenceEnabled: true
useLinuxNativeEpoll: falsepackage com.what21.redisson;
import java.io.File;
import java.io.IOException;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
public class ThirdApp {
public static void main(String[] args) throws IOException {
Config config = Config.fromYAML(new File("d://config-file.yaml"));
RedissonClient redisson = Redisson.create(config);
String json = redisson.getConfig().toJSON().toString();
System.out.println(json);
}
}
Spring方式配置