【问题标题】:Limit cache size using JCache configuration API使用 JCache 配置 API 限制缓存大小
【发布时间】:2016-05-18 03:11:30
【问题描述】:

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

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

如何将缓存大小限制为 50 个条目?通过 Ehcache XML 配置很容易做到这一点,但如果有办法使用 JCache 配置 API 来控制它,我更愿意使用它。

【问题讨论】:

    标签: java caching spring-cache jcache


    【解决方案1】:

    很遗憾,限制大小超出了标准的范围。为此,您始终需要特定于供应商的配置。

    我自己对此并不满意,并且有一些我想在程序内部使用标准 API 设置大小限制的用例。但是,将其排除在标准之外也是有正当理由的:

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

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

    对于非平凡的应用程序,您不想在代码中编写大小。大小是配置,应该是独立且易于管理的地方。外部配置也在标准范围之外。众说纷纭,没有标准的配置方式。

    【讨论】:

    • 我也有同样的问题。就我而言,它是 ehcache 3。如何进行自定义配置?我只看到我可以提供一个 MutableConfiguration 。如何将自定义 ehcache 设置放入其中?
    • @ChristianSchneider 也许这是一个单独的堆栈溢出问题。但是您可以直接在 EHCache 文档中找到答案。
    猜你喜欢
    • 1970-01-01
    • 2019-07-28
    • 2013-04-01
    • 2021-11-17
    • 2015-05-29
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    相关资源
    最近更新 更多