Google Guava Cache not Caching

问题描述 投票:0回答:1

我正在使用Google Guice实例化LoadinCache以使用番石榴缓存。

我的绑定在下面:

   bind(new TypeLiteral<LoadingCache<SelectRequest, SelectCResponse>>() {})
        .toInstance(
            CacheBuilder.newBuilder()
                .maximumSize(1000)
                .expireAfterAccess(60, TimeUnit.MINUTES)
                .recordStats()
                .build(
                    new CacheLoader<SelectRequest, SelectResponse>() {
                      @Override
                      public SelectResponse load(
                          SelectRequest selectRequest) {
                        System.out.println("inside load method of cache : when cache not found");
                        return Select.read(selectRequest);
                      }
                    }));

并且我在下面的impl课堂中进行注入:

  @Inject
  public CeImpl(final LoadingCache<SelectRequest, SelectResponse> cache) 

和方法

SelectResponse res = cache.get(selectCeBlobOracleRequest);

当我测试此代码时,缓存实际上并未缓存我的记录。这里可能是什么问题?它总是命中数据库。

我有任何错误的驱逐政策吗?

guava
1个回答
0
投票

我每次发送到缓存时都在创建一个新请求。通过创建单个请求实例解决了此问题。

© www.soinside.com 2019 - 2024. All rights reserved.