redis

springboot2.0集成redisson搭建redis-c

2018-12-05  本文已影响0人  远行的夜色

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

上一篇 下一篇

猜你喜欢

热点阅读