Memcached にデータを設定し、プロセスの後半で同じデータを取得するための PHP スクリプトを持つ Java アプリを構築しようとしています。これまでのところ、100% のヒット率を達成する方法を見つけることができませんでした。SET に問題がないことを確認するために、データが Memcached に追加されたことを手動で確認しました。PHP と Java のコンシステント ハッシュに基づいて、KETAMA (以下のコードを参照) を使用しようとしましたが、成功しませんでした。
構成:
- Spymemcached (2.8.1)
- PHP (5.3.10)
- PECL/memcached (2.0.1)
- libmemcached (1.0.4)
Java と PHP の間でデータを共有するための最良の戦略は何でしょうか? 正しく使用していない構成はありますか? 別のライブラリを使用する必要がありますか?
ご協力ありがとうございました!
MemcachedClient client = new MemcachedClient
(ConnectionFactory) new ConnectionFactoryBuilder ()
.setProtocol (Protocol.TEXT)
.setHashAlg (DefaultHashAlgorithm.KETAMA_HASH)
.setFailureMode (FailureMode.Redistribute)
.setLocatorType (Locator.CONSISTENT).build(),
AddrUtil.getAddresses("192.168.0.101:11211 192.168.0.102:11211"));
$memcached = new Memcached();
$memcached->addserver('192.168.0.101', 11211);
$memcached->addserver('192.168.0.102', 11211);
$memcached->setOption(Memcached::OPT_DISTRIBUTION ,Memcached::DISTRIBUTION_CONSISTENT);
$memcached->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);