MySQL InnoDB Memcached Plugin の簡単な使い方
[履歴] [最終更新] (2015/06/05 10:26:39)

概要

MySQL の InnoDB ストレージエンジンに直接 memcached プロトコルで高速にアクセスするためのプラグインが存在します。仕組みはこちらで紹介した MySQL HandlerSocket Plugin と似ています。図解した公式ページはこちらです。MySQL 5.6 を対象として簡単に使い方をまとめます。

参考ページ

MySQL 5.6 のビルド

こちらの手順を参考にしてソースコードから MySQL 5.6 をインストールします。ただし、今回は WITH_INNODB_MEMCACHED を ON にセットしてビルドする必要があることに注意してください。

# cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.25 \
-DDEFAULT_CHARSET=utf8 \
-DWITH_EXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_PIC=1 \
-DWITH_INNODB_MEMCACHED=ON  ←これが必要であることに注意

このオプションによって動的リンク用の Shared Library が MySQL のプラグインディレクトリ内にビルドされます。

  • libmemcached.so: the memcached daemon plugin to MySQL.
  • innodb_engine.so: an InnoDB API plugin to memcached.

Memcached プラグインの有効化

プラグインの設定テーブルなどを作成する SQL スクリプトを実行します。付随して test という名称のデータベースにサンプルが生成されますので、削除してしまった場合には再作成しておきます。

mysql> create database if not exists test;
mysql> source /usr/local/mysql-5.6.25/share/innodb_memcached_config.sql

プラグインをインストールします。

mysql> install plugin daemon_memcached soname "libmemcached.so";

ちなみに、アンインストールするためには以下のコマンドを実行します。

mysql> uninstall plugin daemon_memcached;

動作検証

telnet

$ telnet 127.0.0.1 11211
set hello 0 0 8
12341234
STORED
get hello
VALUE hello 0 8
12341234
END
quit

memcached クライアントコマンド

インストール

$ sudo yum install libmemcached
$ export MEMCACHED_SERVERS=127.0.0.1:11211

読み出し

$ memcat AA
HELLO, HELLO

削除

$ memrm AA

現在のアイテム数などを含むサーバ情報を確認

$ memstat

テキストの内容を書き込み

$ echo '123' > /tmp/123.txt
$ memcp /tmp/123.txt
$ memcat 123.txt
123

全削除

$ memflush
関連ページ