Ami*_*ani 1 java caching guava
我正在尝试创建一个简单的会话缓存,允许我在整个缓存上设置最大大小.缓存不是计算缓存,所以我认为Guava CacheBuilder与a LoadingCache不合适.我希望能够执行以下操作:
get(key)来自缓存的数据,该数据在存储操作
put(key,value)期间在存储操作期间被存储到缓存中
我尝试使用MapMaker,但最大尺寸方法似乎过时了.有谁知道我有什么选择?我总是可以使用一个简单的地图并按照我自己的政策滚动?
缓存不是计算缓存,所以我认为Guava
CacheBuilder与aLoadingCache不合适.
所以使用CacheBuilder没有它.它的工作原理完全相同,只是你调用plain build()而不是if build(CacheLoader).一切都保持不变,除了你得到一个"普通"缓存而不是加载缓存.就这样.
我尝试使用MapMaker,但最大尺寸方法似乎过时了.
缓存通过MapMaper有一天会消失,忘掉它.
这个例子非常简单,只需创建
private final static Cache<String, String> cache =
CacheBuilder.newBuilder().maximumSize(123).build();
Run Code Online (Sandbox Code Playgroud)
然后尝试这个:
cache.put("a", "A");
cache.put("b", "B");
System.out.println(cache.getIfPresent("a"));
for (int i=0; i<1000; ++i) cache.put("n" + i, "x");
System.out.println(cache.getIfPresent("a"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
420 次 |
| 最近记录: |