Memcached Java 客户端 SDK 提供了 BulkGetFuture
接口用于获取多个 key 对应的 value,对应的办法是 asyncGetBulk。
如果要获取多个 key,能够将 key 以 List 的模式传入 asyncGetBulk
办法中,返回 BulkGetFuture
对象,再通过 BulkGetFuture.get()
办法获取到后果。
以下是一个简略的示例代码:
// 创立连接池
MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses("localhost:11211"));
MemcachedClient client = builder.build();
// 须要获取的 key 列表
List<String> keys = Arrays.asList("key1", "key2", "key3");
// 异步获取多个 key 对应的 value
BulkGetFuture<Map<String, Object>> future = client.asyncGetBulk(keys);
try {
// 获取后果
Map<String, Object> resultMap = future.get();
for (String key : keys) {
// 获取对应的 value
Object value = resultMap.get(key);
System.out.println(key + ":" + value);
}
} catch (Exception e) {e.printStackTrace();
} finally {client.shutdown();
}
上述代码中应用了 XMemcached 客户端,它是一个反对 Memcached 协定的 Java 客户端 SDK,能够通过 Maven 依赖引入,例如:
<dependency>
<groupId>com.googlecode.xmemcached</groupId>
<artifactId>xmemcached</artifactId>
<version>2.4.6</version>
</dependency>