Memcached として使用される Amazon Elasticache は、入力ストリーム (バイト配列に変換) を格納します。
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」です。
私の質問
- Memcached が初めての場合を除いて null バイト配列を返すのはなぜですか?
- バイト配列が Memcached に正常に書き込まれたかどうかを確認する方法は?