今天优锐课给大家分享这篇新文章——《快速入门:如何在Redis上使用Spring Cache》

SpringJava编程语言的一种非常流行的应用程序框架,它使构建企业Java软件更加容易。从3.1版开始,Spring支持将缓存添加到现有的Spring应用程序中,以提高性能并减少响应时间。

Redis是一种开源的内存中数据结构存储,可用于构建NoSQL数据库。但是,Redis不包括对Java的常规支持或对Spring等应用程序框架的支持。

好消息是,你可以使用第三方Redis Java客户端(例如Redisson)来使用SpringRedis进行缓存。RedissonSpring框架完全兼容。在本文中,我们将讨论如何在Redis中使用Redisson进行缓存。

 

Spring中缓存

Spring框架提供了一个缓存抽象层。在Spring中进行缓存的相关注释如下:

·         @Cacheable@Cacheable批注表示调用此方法的结果将被缓存。 如果再次使用相同的参数调用该方法,则将从缓存中检索结果,而不是调用该方法。

·         @CachePut@CachePut批注表示方法将触发缓存放置操作。

·         @CacheEvict@CacheEvict批注表示方法将触发缓存逐出操作。

·         @EnableCaching@EnableCaching批注启用Spring的内置缓存管理功能。

·         @Caching@Caching注释是用于多个缓存注释的组注释。

·         @CacheConfig@CacheConfig批注允许共享与缓存相关的常见设置,例如缓存名称和密钥生成器。

 

安装Redisson

安装Redisson非常简单。例如,如果你使用的是Maven,只需将以下依赖项添加到pom.xml文件中:

    org.redisson
    redisson
    3.11.5
 
  


 

Redisson中的缓存参数

Redisson中的每个Spring缓存都有两个重要的参数,以毫秒为单位指定:

·         ttlttl(生存时间)参数确定高速缓存中对象的最大生存期。 缓存中的所有对象的生存时间到期后,无论请求的频率如何,都将删除它们。

·         maxIdleTimemaxIdleTime参数确定两次请求对象之间可以经过的最长时间。如果这段时间没有请求,对象将从缓存中自动删除。此参数仅在Spring缓存的Redisson实现中存在。

如果这两个参数未定义或等于0,则将无限期存储高速缓存中的对象。

使用SpringRedis进行缓存的示例代码

以下示例代码演示了如何使用RedissonSpringRedis中执行缓存。该代码利用了两个Spring bean:第一个用于创建和配置Redisson客户端,第二个用于设置和测试缓存。

@Configuration
@ComponentScan
@EnableCaching
public class Application {
    @Bean(destroyMethod="shutdown")
    RedissonClient redisson() {
        Config config = new Config();
        config.useSingleServer()
              .setAddress("redis://127.0.0.1:6379");
        return Redisson.create(config);
    }
    @Bean
    CacheManager cacheManager(RedissonClient redissonClient) {
        Map config = new HashMap<>();
        // create "testMap" spring cache with ttl = 24 minutes and maxIdleTime = 12 minutes
        config.put("testMap", new CacheConfig(24*60*1000, 12*60*1000));
        return new RedissonSpringCacheManager(redissonClient, config);
    }
}


 

结论

借助本地缓存的功能,Redisson允许你将基于RedisSpring缓存的性能提高多达45倍,以进行读取操作。



感谢阅读!欢迎留言或私信。

抽丝剥茧 细说架构那些事——【优锐课】