Redisson底层基于Netty,所以说,它可以用来做很多事情。
- Redis客户端工具
- Redis命令执行
- Redis服务治理(节点管理)
- 分布式服务
- 分布式远程服务(RPC)
- 分布式实时对象服务(Live Object)
- 分布式执行服务(Executor Service)
- 分布式调度任务服务(Scheduler Service)
- 分布式映射归纳服务(MapReduce)
- 集成到Spring等第三方框架
Redis服务目前有四种形式:单机、主从模式、哨兵模式、集群模式。Redisson作为一款实用很普遍的Redis应用客户端,也支持者几种模式的配置。
单机模式
// 默认连接地址 127.0.0.1:6379
RedissonClient redisson = Redisson.create();
Config config = new Config();
config.useSingleServer().setAddress("myredisserver:6379");
RedissonClient redisson = Redisson.create(config);
主从模式
个人感觉,主从模式,是Redis服务比较核心的一种场景。其中涉及数据同步(全量复制等)、数据备份(持久化:RDB、AOF)、读写分离(master写,slave读)等知识点,在主从模式中都可以说的清楚。
Config config = new Config();
config.useMasterSlaveServers()
//可以用"rediss://"来启用SSL连接
.setMasterAddress("redis://127.0.0.1:6379")
.addSlaveAddress("redis://127.0.0.1:6389", "redis://127.0.0.1:6332", "redis://127.0.0.1:6419")
.addSlaveAddress("redis://127.0.0.1:6399")
.setDnsMonitoringInterval(5000) //DNS监控间隔,单位:毫秒
.setReadMode(ReadMode.MASTER_SLAVE) //读取操作的负载均衡模式
.setSubscriptionMode(SubscriptionMode.SLAVE) //订阅操作的负载均衡模式,SLAVE - 只在从服务节点里订阅。 MASTER - 只在主服务节点里订阅
.setLoadBalancer(new org.redisson.connection.balancer.RoundRobinLoadBalancer()) // 负载均衡算法类的选择
.setSubscriptionConnectionMinimumIdleSize(1) //从节点发布和订阅连接的最小空闲连接数
.setSubscriptionConnectionPoolSize(50) //从节点发布和订阅连接池大小
.setSlaveConnectionMinimumIdleSize(32) //从节点最小空闲连接数
.setSlaveConnectionPoolSize(64) //从节点连接池大小
.setMasterConnectionMinimumIdleSize(32) //主节点最小空闲连接数
.setMasterConnectionPoolSize(64) //主节点连接池大小
.setIdleConnectionTimeout(10000) //连接空闲超时,单位:毫秒
.setConnectTimeout(10000) //连接超时,单位:毫秒
.setTimeout(3000) //命令等待超时,单位:毫秒
.setRetryAttempts(3) //命令(发送)失败重试次数
.setRetryInterval(1500) // 命令重试发送时间间隔,单位:毫秒,与retryAttempts配合,三次重试均失败,则对应节点需要被剔除
.setDatabase(0) // 数据库编号
//.setPassword("") //密码设置
.setSubscriptionsPerConnection(5) //单个连接最大订阅数量
.setSslEnableEndpointIdentification(true) //启用SSL终端识别
.setSslProvider(SslProvider.JDK) // SSL实现方式
//.setSslTruststorePassword("") //SSL信任证书库密码
//.setSslKeystore(new URI("")) //SSL钥匙库路径
//.setSslKeystorePassword("")//SSL钥匙库密码
.setClientName("clientName");
RedissonClient redisson = Redisson.create(config);
哨兵模式
Config config = new Config();
config.useSentinelServers()
.setMasterName("mymaster")
//可以用"rediss://"来启用SSL连接
.addSentinelAddress("redis://127.0.0.1:26389", "redis://127.0.0.1:26379")
.addSentinelAddress("redis://127.0.0.1:26319");
RedissonClient redisson = Redisson.create(config);
集群模式
Config config = new Config();
config.useClusterServers()
.setScanInterval(2000) // 集群状态扫描间隔时间,单位是毫秒
//可以用"rediss://"来启用SSL连接
.addNodeAddress("redis://127.0.0.1:7000", "redis://127.0.0.1:7001")
.addNodeAddress("redis://127.0.0.1:7002");
RedissonClient redisson = Redisson.create(config);
学到这里,感觉:刨洋芋