Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


16.6.3.8 Java での MySQL と memcached の使用

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_HASHOLD_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()

User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.