Amazon Elasticache用作Memcached来存储Inputstream(转换为字节数组),就像这样

private static final int MEMCACHED_TIME_TO_LIVE = 15 * 60;
InputStream stream = item.openStream();

byte[] byteArray = IOUtils.toByteArray(stream);


MemcachedClient memcachedClient = new MemcachedClient(new InetSocketAddress(AMAZON_ELASTICACHE_CLUSTER_ENDPOINT,AMAZON_ELASTICACHE_CLUSTER_PORT));
String key = name;

Future<Boolean> result = memcachedClient.set(key, MEMCACHED_TIME_TO_LIVE,byteArray);

memcachedClient.shutdown();

存储的byteArray就像这样读取

MemcachedClient memcachedClient = new MemcachedClient(new InetSocketAddress(AMAZON_ELASTICACHE_CLUSTER_ENDPOINT,
                    AMAZON_ELASTICACHE_CLUSTER_PORT));

String key = name;
byte[] byteArray = (byte[]) memcachedClient.get(key);
memcachedClient.shutdown();

返回的字节数组始终为“null”,但应用程序第一次启动时除外 .

My Question

  • 为什么Memcached返回一个空字节数组,除了第一次?

  • 如何检查字节数组是否已成功写入Memcached?