Springboot-Redisson - 10. 第三方框架整合

✌ 第三方框架整合


✍ Spring框架整合

Redisson提供了与Spring框架的直接整合,使得在Spring应用中使用Redis变得更加容易和直观。

作用:

  • 在Spring应用中方便地使用Redis。
  • 利用Spring的依赖注入特性,自动注入RedissonClient。

使用场景:

  • 当您在Spring应用中使用Redis作为缓存、消息队列或其他用途时。

优缺点:

  • 优点: 易于配置,与Spring天然整合。
  • 缺点: 与Spring耦合,不适用于非Spring应用。

✍ Spring Cache整合


🎷 本地缓存

Redisson支持本地缓存,这意味着数据可以被存储在应用的本地内存中,以减少与Redis服务器的通信。

作用:

  • 提高缓存读取的速度。
  • 减少网络通信。

使用场景:

  • 当读取缓存的速度非常关键,并且可以接受数据的短暂不一致性时。

优缺点:

  • 优点: 快速读取,减少网络延迟。
  • 缺点: 数据可能不总是最新的,增加了内存使用。

示例:

了解,以下是关于Redisson与Spring Boot中Spring Cache整合使用本地缓存的详细示例:

Redisson的本地缓存功能允许您将数据缓存保存在应用的本地内存中,以减少与Redis服务器之间的通信并提高缓存读取速度。

步骤:

  1. 添加依赖:

首先,您需要在您的pom.xmlbuild.gradle中添加必要的依赖。

Maven:

<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson-spring-data-20</artifactId>
    <version>3.x.x</version>
</dependency>
  1. 配置Redisson:

您可以在application.ymlapplication.properties中配置Redisson:

spring:
  redis:
    redisson:
      config: classpath:redisson.yaml

其中,redisson.yaml是Redisson的配置文件。例如:

singleServerConfig:
  address: "redis://127.0.0.1:6379"
  cacheSize: 1000  # 本地缓存大小
  1. 配置Spring Cache:

启用Spring Cache并配置Redisson作为缓存管理器,同时启用本地缓存:

@EnableCaching
@Configuration
public class CacheConfig {

    @Autowired
    private RedissonClient redissonClient;

    @Bean
    public CacheManager cacheManager() {
        Map<String, CacheConfig> config = new HashMap<>();
        CacheConfig cacheConfig = new CacheConfig();
        cacheConfig.setMaxIdleSeconds(3600);   // 数据在本地缓存的最长空闲时间
        cacheConfig.setTTLseconds(3600);       // 数据在本地缓存的生存时间
        config.put("myCache", cacheConfig);

        return new RedissonSpringCacheManager(redissonClient, config);
    }
}
  1. 使用Spring Cache:

在Spring服务或组件中使用@Cacheable@CacheEvict等注解。

@Service
public class MyService {

    @Cacheable(cacheNames = "myCache")
    public String longRunningMethod(String input) {
        // ... long running computation
        return result;
    }
}

🎷 数据分片

Redisson支持数据分片,允许数据在多个Redis实例之间进行分片。

作用:

  • 分散数据,提高性能和可用性。
  • 充分利用多个Redis实例。

使用场景:

  • 当单个Redis实例无法满足数据存储或性能需求时。

优缺点:

  • 优点: 高可用性,高性能。
  • 缺点: 增加了配置和维护的复杂性。

示例:

Redisson支持在多个Redis实例之间进行数据分片。这意味着数据会在不同的Redis节点间均匀地分布,从而充分利用多个Redis实例并提高整体的性能和容错能力。

步骤:

  1. 添加依赖:

您需要在您的pom.xmlbuild.gradle中添加Redisson的依赖。

Maven:

<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson-spring-data-20</artifactId>
    <version>3.x.x</version>
</dependency>
  1. 配置Redisson:

application.ymlapplication.properties中配置Redisson以使用集群模式:

spring:
  redis:
    redisson:
      config: classpath:redisson.yaml

其中,redisson.yaml是Redisson的配置文件。例如,使用集群模式:

clusterServersConfig:
  nodeAddresses:
  - "redis://127.0.0.1:7000"
  - "redis://127.0.0.1:7001"
  - "redis://127.0.0.1:7002"
  1. 配置Spring Cache:

启用Spring Cache并配置Redisson作为缓存管理器:

@EnableCaching
@Configuration
public class CacheConfig {

    @Autowired
    private RedissonClient redissonClient;

    @Bean
    public CacheManager cacheManager() {
        return new RedissonSpringCacheManager(redissonClient);
    }
}
  1. 使用Spring Cache:

在Spring服务或组件中使用@Cacheable@CacheEvict等注解。

@Service
public class MyService {

    @Cacheable(cacheNames = "myCache")
    public String longRunningMethod(String input) {
        // ... long running computation
        return result;
    }
}

✍ JSON和YAML配置

Redisson支持使用JSON和YAML格式的配置文件,这为开发人员提供了一种更为灵活和可读的方式来配置Redisson。

作用:

  • 提供了一种可读性更好、格式更结构化的方式来配置Redisson。

使用场景:

  • 当您希望在Spring Boot应用中使用外部的配置文件来配置Redisson时。

优缺点:

  • 优点: 格式清晰,易于管理。
  • 缺点: 需要额外的配置文件。

示例:

在Spring Boot中,您可以这样使用Redisson的JSON或YAML配置:

@Bean
public RedissonClient redissonClient() throws IOException {
    Config config = Config.fromYAML(new File("path_to_config.yaml"));
    return Redisson.create(config);
}

✍ Hibernate整合

Redisson提供了与Hibernate的缓存提供程序的整合,使得使用Redis作为Hibernate的二级缓存变得非常简单。


🎷 本地缓存

与Spring缓存类似,Redisson也支持为Hibernate提供本地缓存。

作用:

  • 为Hibernate的二级缓存提供更快速的访问。

使用场景:

  • 当您使用Hibernate作为ORM工具,并希望使用Redis作为二级缓存时。

优缺点:

  • 优点: 快速,减少与Redis的通信。
  • 缺点: 可能会有一些数据不一致的情况。

示例:

配置Hibernate使用Redisson作为二级缓存,并启用本地缓存:

hibernate.cache.redisson.local_cache = true

🎷 数据分片

Redisson的Hibernate缓存提供程序也支持数据分片。

作用:

  • 允许Hibernate的二级缓存数据在多个Redis实例之间进行分片。

使用场景:

  • 当单个Redis实例无法满足二级缓存的需求时。

优缺点:

  • 优点: 充分利用多个Redis实例,提供更高的可用性。
  • 缺点: 配置可能更复杂。

示例:

配置Hibernate使用Redisson作为二级缓存,并配置数据分片:

hibernate.cache.redisson.shardings = ["redis://127.0.0.1:7000", "redis://127.0.0.1:7001"]

✍ Java缓存标准规范JCache API (JSR-107)

Redisson提供了对JCache API (JSR-107)的支持,使得Java应用可以使用标准化的缓存API。

作用:

  • 提供一个标准化的Java缓存API接口。

使用场景:

  • 当您希望在Java应用中使用标准的缓存API,而不是特定于某个库或框架的API。

优缺点:

  • 优点: 标准化,跨库兼容。
  • 缺点: 可能不包含某些特定功能。

示例:

JCache,也称为JSR-107,是Java的标准化缓存API。Redisson为JCache提供了一个实现,这使得您可以在Java应用中使用标准的缓存API,并使用Redis作为缓存的后端。

步骤:

  1. 添加依赖:

首先,您需要在您的pom.xmlbuild.gradle中添加必要的依赖。

Maven:

<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson-jcache</artifactId>
    <version>3.x.x</version>
</dependency>
  1. 配置Redisson:

您可以在application.ymlapplication.properties中配置Redisson:

spring:
  redis:
    redisson:
      config: classpath:redisson.yaml

其中,redisson.yaml是Redisson的配置文件。例如:

singleServerConfig:
  address: "redis://127.0.0.1:6379"
  1. 配置JCache:

您可以使用Redisson提供的JCache CachingProvider来创建和配置缓存:

@Configuration
public class CacheConfig {

    @Autowired
    private RedissonClient redissonClient;

    @Bean
    public CacheManager cacheManager() {
        CachingProvider provider = Caching.getCachingProvider(RedissonCachingProvider.class.getName());
        URI configUri = getClass().getResource("/redisson-jcache.yaml").toURI();
        return provider.getCacheManager(configUri, null);
    }
}

其中,redisson-jcache.yaml是JCache的配置文件。

  1. 使用JCache:

在Spring服务或组件中使用JCache标准的API:

@Service
public class MyService {

    @Autowired
    private CacheManager cacheManager;

    public String longRunningMethod(String input) {
        Cache<String, String> cache = cacheManager.getCache("myCache");
        if (cache.containsKey(input)) {
            return cache.get(input);
        } else {
            // ... long running computation
            String result = ...;
            cache.put(input, result);
            return result;
        }
    }
}

✍ Tomcat会话管理器(Tomcat Session Manager)

Redisson为Tomcat提供了一个会话管理器,可以使用Redis存储会话。

作用:

  • 使用Redis存储Tomcat的会话数据。

使用场景:

  • 当您使用Tomcat作为Web服务器,并希望将会话数据存储在Redis中。

优缺点:

  • 优点: 使会话数据持久化、分布式。
  • 缺点: 引入外部依赖,需要Redis。

示例:

在Tomcat的context.xml中配置Redisson作为会话管理器:

<Manager className="org.redisson.tomcat.RedissonSessionManager" 
         configPath="${catalina.base}/conf/redisson.yaml" />

✍ Spring Session会话管理器

Redisson还提供了一个Spring Session的会话管理器。

作用:

  • 使用Redis存储Spring的会话数据。

使用场景:

  • 当您使用Spring Boot并希望将会话数据存储在Redis中。

优缺点:

  • 优点: 使会话数据持久化、分布式。
  • 缺点: 引入外部依赖,需要Redis。

示例:

Spring Session提供了一种将会话信息存储在外部存储中的方法,而不是默认的HTTP会话。Redisson为Spring Session提供了一个实现,允许您使用Redis作为会话的存储。

步骤:

  1. 添加依赖:

您需要在您的pom.xmlbuild.gradle中添加Redisson与Spring Session的依赖。

Maven:

<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson-spring-boot-starter</artifactId>
    <version>3.x.x</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-core</artifactId>
</dependency>
  1. 配置Redisson与Spring Session:

application.ymlapplication.properties中配置Redisson与Spring Session:

spring:
  redis:
    redisson:
      config: classpath:redisson.yaml
  session:
    store-type: redis

其中,redisson.yaml是Redisson的配置文件。例如:

singleServerConfig:
  address: "redis://127.0.0.1:6379"
  1. Java配置:

启用Spring Session并配置Redisson作为会话的存储:

@EnableRedisHttpSession
@Configuration
public class SessionConfig {

    @Autowired
    private RedissonClient redissonClient;

    @Bean
    public RedissonConnectionFactory redissonConnectionFactory() {
        return new RedissonConnectionFactory(redissonClient);
    }
}
  1. 使用Spring Session:

现在,Spring Session会自动将HTTP会话数据存储在Redis中。您可以像往常一样使用HttpSession对象。


✍ JMX与Dropwizard Metrics

Redisson提供了对JMX和Dropwizard Metrics的支持,以便于监控和度量。

作用:

  • 监控Redisson的性能和运行状态。

使用场景:

  • 当您需要监控Redisson在生产中的性能。

优缺点:

  • 优点: 提供了深入的监控和度量功能。
  • 缺点: 可能增加了一些性能开销。

示例:

在Spring Boot中,您可以配置Redisson以使用JMX和/或Dropwizard Metrics进行监控。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yueerba126

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值