springboot2.0集成redisson搭建redis-cluster集群模式開(kāi)發(fā)
1. redisson概述
Redisson是一個(gè)在Redis的基礎(chǔ)上實(shí)現(xiàn)的Java駐內(nèi)存數(shù)據(jù)網(wǎng)格(In-Memory Data Grid)揣云。它不僅提供了一系列的分布式的Java常用對(duì)象亏拉,還提供了許多分布式服務(wù)。其中包括(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的最簡(jiǎn)單和最便捷的方法。Redisson的宗旨是促進(jìn)使用者對(duì)Redis的關(guān)注分離(Separation of Concern),從而讓使用者能夠?qū)⒕Ω械胤旁谔幚順I(yè)務(wù)邏輯上。
關(guān)于Redisson項(xiàng)目的詳細(xì)介紹可以在官方網(wǎng)站找到。
每個(gè)Redis服務(wù)實(shí)例都能管理多達(dá)1TB的內(nèi)存。
能夠完美的在云計(jì)算環(huán)境里使用捡絮,并且支持AWS ElastiCache主備版,AWS ElastiCache集群版莲镣,Azure Redis Cache和阿里云(Aliyun)的云數(shù)據(jù)庫(kù)Redis版
以下是Redisson的結(jié)構(gòu):
Redisson作為獨(dú)立節(jié)點(diǎn)?可以用于獨(dú)立執(zhí)行其他節(jié)點(diǎn)發(fā)布到分布式執(zhí)行服務(wù)?和?分布式調(diào)度任務(wù)服務(wù)?里的遠(yuǎn)程任務(wù)福稳。
如果你現(xiàn)在正在使用其他的Redis的Java客戶(hù)端,那么Redis命令和Redisson對(duì)象匹配列表?能夠幫助你輕松的將現(xiàn)有代碼遷徙到Redisson框架里來(lái)瑞侮。
Redisson底層采用的是Netty?框架的圆。支持Redis?2.8以上版本,支持Java1.6+以上版本半火。
2.引入maven依賴(lài):
<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內(nèi)容配置如下:
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.在項(xiàng)目中開(kāi)始引用:
@Autowired
private RedissonClient redissonClient;
字符串示例:
RBucket<Object> reBucket = redissonClient.getBucket(key, fstCodec);
return (String) reBucket.get();
fstCodec:是redisson支持的一種第三方編碼格式,FstCodec FST 10倍于JDK序列化性能而且100%兼容的編碼
如果需要使用越妈,可以引入maven依賴(lài):
<dependency>
? ? <groupId>de.ruedigermoeller</groupId>
? ? <artifactId>fst</artifactId>
? ? <version>2.56</version>
</dependency>
redisson默認(rèn)的編碼是org.redisson.codec.JsonJacksonCodec,如果不能滿(mǎn)足需求可以钮糖,參考官方文檔做
更多的配置:https://github.com/redisson/redisson/wiki/14.-Integration-with-frameworks