作成日
2015/06/05最終更新
2017/09/09記事区分
一般公開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
関連記事
- MySQL レプリケーション設定 (2段, 3段)MySQL DB サーバは自身へのクエリをバイナリログとして書き出すことができます。レプリケーションとは、追加の MySQL DB サーバが、別の MySQL DB サーバが出力したバイナリログを自分のリレーログとよばれるログにコピーして、更にリレーログに記載されたクエリを自分自身のテーブルに実行する機能です。バイナリログを出力する DB をマスターとよび、自分のリレーログにコピーする DB をス...
- MySQL 5.7 インストール手順2016/11/07 時点、多くの環境では yum レポジトリ等に mysql 5.7 が含まれていません。公式ページからダウンロードしてインストールする手順を二つまとめます。 yum レポジトリを追加する手順 [Installing MySQL on Linux Using the MySQL Yum Repository (mysql 5.7)](http://dev.mysql.com/do...
- MyBatis 3 サンプルコード (Java/MySQL/Gradle)MyBatis は、JDBC を直接利用せずに、XML ファイル等で用意した SQL 文を利用して DB にアクセスするための Java ライブラリです。内部的には JDBC が利用されているため、JDBC のインストールは必要です。同様のライブラリに Hibernate ORM があります。DB は特に MySQL を対象として、MyBatis バージョン 3 の
- MySQL HandlerSocket Plugin の簡単な使用方法HandlerSocket は MySQL プロセス内のスレッドとして動作する、MySQL の NoSQL フロントエンドです。独自のプロトコルを用いて TCP 通信を行います。SQL 構文の解析が不要、プロトコルがシンプルなどの理由によって、単純な DB アクセスが高速に実行可能になります。MariaDB であれば[標準プラグインとして付属](https://mariadb.co
- Spring Boot から MyBatis を利用するための設定 (Gradle/MySQL)MyBatis を Spring Boot で利用するための基本的な設定およびサンプルコードをまとめます。サンプルコードにおいては、特に MySQL を対象とします。 MyBatis Spring-Boot-Starter チュートリアル