快速啓動:如何在Redis上使用Spring緩存

Spring是Java編程語言的一個非常流行的應用程序框架,它使構建企業Java軟件變得更加容易。自3.1版以來,Spring一直支持將緩存添加到現有的Spring應用程序中,以提高性能和縮短響應時間。

Redis是一個開放源碼的內存中數據結構存儲區,可用於構建NoSQL數據庫.然而,Redis並不包括對一般Java或Spring等應用程序框架的預構建支持。

好消息是您可以通過使用第三方Redis Java客戶機來執行Spring和Redis緩存,例如Redis…Redisson與Spring框架完全兼容。在本文中,我們將討論如何使用Redisson在Spring中使用Redis執行緩存。

Spring緩存

Spring框架提供了緩存抽象層。Spring中緩存的相關注釋如下:

@cacheable:這個@cacheable註釋表示調用此方法的結果將被緩存。如果再次使用相同的參數調用該方法,則將從緩存中檢索結果,而不是調用該方法。

@CachePut:這個@CachePut註釋表示方法將觸發緩存PUT操作。

@CacheEvict:這個@CacheEvict註釋表示方法將觸發緩存退出操作。

@EnableCache:這個@EnableCache註釋支持Spring內置的緩存管理功能。

@緩存:這個@緩存註釋是用於多個緩存註釋的組註釋。

@CacheConfig:這個@CacheConfig註釋允許共享與緩存相關的公共設置,如緩存名稱和密鑰生成器.

安裝Redisson

安裝Redisson非常簡單。例如,如果您正在使用Maven,只需將下面的依賴項添加到您的pom.xml檔案:

<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson</artifactId>
    <version>3.11.5</version>
</dependency>

Redisson中的緩存參數

Redisson中的每個Spring緩存都有兩個重要參數,它們以毫秒爲單位指定:

TTL:ttl(生存時間)參數確定緩存中對象的最大生存期。緩存中的所有對象在它們的生存期結束後都將被刪除,不管它們被請求的頻率有多頻繁。

maxIdleTime:這個maxIdleTime參數確定對象請求之間的最大間隔時間。如果這段時間沒有請求,對象將自動從緩存中刪除。此參數僅存在於Spring緩存的Redisson實現中。

如果這兩個參數未定義或等於0,則緩存中的對象將無限期地存儲。

使用Spring和Redis緩存的示例代碼

下面的示例代碼演示瞭如何使用Redisson在Spring和Redis中執行緩存。這段代碼使用了兩個Springbean:第一個用來創建和配置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<String, CacheConfig> 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允許您將基於Redis的Spring緩存的性能提高45倍。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章