springboot2.0集成redisson搭建redis-c
springboot2.0集成redisson搭建redis-cluster集群模式开发
1. redisson概述
Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。其中包括(BitSet, Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, AtomicLong, CountDownLatch, Publish / Subscribe, Bloom filter, Remote service, Spring cache, Executor service, Live Object service, Scheduler service) Redisson提供了使用Redis的最简单和最便捷的方法。Redisson的宗旨是促进使用者对Redis的关注分离(Separation of Concern),从而让使用者能够将精力更集中地放在处理业务逻辑上。
关于Redisson项目的详细介绍可以在官方网站找到。
每个Redis服务实例都能管理多达1TB的内存。
能够完美的在云计算环境里使用,并且支持AWS ElastiCache主备版,AWS ElastiCache集群版,Azure Redis Cache和阿里云(Aliyun)的云数据库Redis版
以下是Redisson的结构:
Redisson作为独立节点 可以用于独立执行其他节点发布到分布式执行服务 和 分布式调度任务服务 里的远程任务。
如果你现在正在使用其他的Redis的Java客户端,那么Redis命令和Redisson对象匹配列表 能够帮助你轻松的将现有代码迁徙到Redisson框架里来。
Redisson底层采用的是Netty 框架。支持Redis 2.8以上版本,支持Java1.6+以上版本。
2.引入maven依赖:
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
</dependency>
3.在springboot中的配置:
application.yml:
spring:
redis:
redisson:
config: classpath:redisson.yml #配置集群模式
redisson.yml内容配置如下:
clusterServersConfig:
idleConnectionTimeout: 10000
pingTimeout: 1000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
reconnectionTimeout: 3000
failedAttempts: 3
password: null
subscriptionsPerConnection: 5
clientName: null
loadBalancer: !<org.redisson.connection.balancer.RoundRobinLoadBalancer> {}
slaveSubscriptionConnectionMinimumIdleSize: 1
slaveSubscriptionConnectionPoolSize: 50
slaveConnectionMinimumIdleSize: 32
slaveConnectionPoolSize: 64
masterConnectionMinimumIdleSize: 32
masterConnectionPoolSize: 64
readMode: "MASTER_SLAVE"
nodeAddresses:
- redis://192.168.110.133:7000
- redis://192.168.110.133:7001
- redis://192.168.110.133:7002
- redis://192.168.110.133:7003
- redis://192.168.110.133:7004
- redis://192.168.110.133:7005
scanInterval: 1000
threads: 0
nettyThreads: 0
codec: !<org.redisson.codec.JsonJacksonCodec> {}
#codec: !<org.redisson.client.codec.StringCodec> {}
transportMode: "NIO" #传输模式nio
4.在项目中开始引用:
@Autowired
private RedissonClient redissonClient;
字符串示例:
RBucket<Object> reBucket = redissonClient.getBucket(key, fstCodec);
return (String) reBucket.get();
fstCodec:是redisson支持的一种第三方编码格式,FstCodec FST 10倍于JDK序列化性能而且100%兼容的编码
如果需要使用,可以引入maven依赖:
<dependency>
<groupId>de.ruedigermoeller</groupId>
<artifactId>fst</artifactId>
<version>2.56</version>
</dependency>
redisson默认的编码是org.redisson.codec.JsonJacksonCodec,如果不能满足需求可以,参考官方文档做
更多的配置:https://github.com/redisson/redisson/wiki/14.-Integration-with-frameworks