Java に含まれる com.danga.MemCached
クラスは、memcached インスタンスへのネイティブインタフェースを提供します。このクライアントは、https://github.com/gwhalin/Memcached-Java-Client/downloads から入手できます。この Java クラスは libmemcached
と互換性があるハッシュを使用するため、同じ memcached インスタンスにアクセスする Java と libmemcached
のアプリケーションを混在および調和できます。Java とその他のインタフェース間の直列化には互換性がありません。これが問題になる場合は、JSON または同様の非バイナリ直列化フォーマットを使用してください。
ほとんどのシステムでは、パッケージをダウンロードして jar
を直接使用できます。
com.danga.MemCached
インタフェースを使用するには、MemCachedClient
インスタンスを作成し、SockIOPool
を構成してサーバーリストを構成します。このプールを指定することで、サーバーリスト、重み、および接続パラメータを設定し、クライアントと構成した memcached インスタンス間の接続を最適化します。
一般に、1 つのクラス内で memcached インタフェースを一度構成すれば、あとはこのインタフェースを残りのアプリケーション全体で使用できます。
たとえば、基本的なインタフェースを作成するには、最初に MemCachedClient
とベースの SockIOPool
設定を構成します。
public class MyClass {
protected static MemCachedClient mcc = new MemCachedClient();
static {
String[] servers =
{
"localhost:11211",
};
Integer[] weights = { 1 };
SockIOPool pool = SockIOPool.getInstance();
pool.setServers( servers );
pool.setWeights( weights );
上の例では、使用する memcached インスタンスの配列を作成することによってサーバーリストが構成されています。次に、各サーバーに対する個別の重みを構成します。
接続に関する残りのプロパティーはオプションですが、プールのパラメータを設定することによって接続の数値 (初期接続数、最小接続数、最大接続数、およびアイドルタイムアウト) を設定できます。
pool.setInitConn( 5 );
pool.setMinConn( 5 );
pool.setMaxConn( 250 );
pool.setMaxIdle( 1000 * 60 * 60 * 6
パラメータを構成したあとは、接続プールを初期化します。
pool.initialize();
これで、プールと memcached インスタンスへの接続を使用できます。
特定のキーの格納時に使用されるサーバーの選択に使用するハッシュ化アルゴリズムを設定するには、pool.setHashingAlg()
を使用します。
pool.setHashingAlg( SockIOPool.NEW_COMPAT_HASH );
有効な値は、基本的なモジュラハッシュ化アルゴリズムでもある NEW_COMPAT_HASH
、OLD_COMPAT_HASH
、および NATIVE_HASH
です。整合ハッシュ化アルゴリズムの場合は、CONSISTENT_HASH
を使用します。これらの定数は、libmemcached
内の対応するハッシュ設定と同等です。
次の表に、Java の com.danga.MemCached
メソッドと memcached インタフェース仕様に含まれる同等の汎用メソッドの概要を示します。
Java の com.danga.MemCached メソッド |
同等の汎用メソッド |
---|---|
get() |
汎用の get() 。 |
getMulti(keys) |
複数の keys の値を取得し、キーに java.lang.String 、対応する値に java.lang.Object をそれぞれ使用して、ハッシュマップとして情報を返します。 |
set() |
汎用の set() 。 |
add() |
汎用の add() 。 |
replace() |
汎用の replace() 。 |
delete() |
汎用の delete() 。 |
incr() |
汎用の incr() 。 |
decr() |
汎用の decr() 。 |