使用JCache配置API限制高速缓存大小

时间:2016-05-18 03:11:31

标签: java caching spring-cache jcache

我正在使用JCache API在我的应用程序中配置缓存,该缓存使用带有Ehcache 3的弹簧缓存。

cacheManager.createCache("users", new MutableConfiguration<String, User>()
                    .setStoreByValue(false)
                    .setManagementEnabled(true)
                    .setStatisticsEnabled(true)
                    .setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(Duration.TEN_MINUTES)));

如何将缓存大小限制为50个条目?通过Ehcache XML配置很容易实现,但是如果有办法使用JCache配置API来控制它,我宁愿使用它。

1 个答案:

答案 0 :(得分:3)

不幸的是,限制尺寸超出了标准的范围。您需要始终使用特定于供应商的配置来执行此操作。

我自己并不满意,并且我希望在程序中使用标准API设置大小限制。但是,有正当理由也没有列入标准:

尺寸限制是什么意思?哪些是缓存需要遵循的确切语义?是否可以为所有缓存定义有用的语义?例如,对于分布式缓存,很难确定缓存中的条目数。

有不同的概念来限制缓存大小。某些缓存允许设置字节大小限制。

对于非平凡的应用程序,您不希望在代码中编写大小。大小是配置,应该是独立和可管理的。外部配置也超出了标准的范围。有很多意见,没有标准的配置方式。