memcached+PostgreSQLで実現する ハイパフォーマンスWebアプリケーション構築:memcachedの使い方(1)(4/4 ページ)
大規模Webサイトでの利用事例が公開されたこともあり、キャッシュサーバを使ったデータベースシステムが注目を集めつつあります。中でもmemcachedは多くのサービスで運用実績がある注目株です。MySQLでの事例が多く取り上げられていますが、本稿では安定性抜群のPostgreSQLと組み合わせた場合の実装方法を紹介していきます。
pgmemcacheのインストール
pgmemcacheのインストール手順を示します。ここではすでにPostgreSQLがインストールされていると仮定します。
まず、pgmemcacheとlibmemcacheのアーカイブをダウンロードします。
pgmemcache_1.2beta1.tar.gzの入手先
http://pgfoundry.org/projects/pgmemcache/
libmemcache-1.4.0.rc2.tar.bz2の入手先
http://people.freebsd.org/~seanc/libmemcache/
次にlibmemcacheのアーカイブを適当なディレクトリで展開し、configureコマンドとmakeコマンドを実行します。
[root]# tar xvfj libmemcache-1.4.0.rc2.tar.bz2 [root]# libmemcache-1.4.0.rc2 [root]# ./configure --prefix=/usr [root]# make && make install
次にpgmemcacheをインストールします。PostgreSQLを実行するユーザー(ここではpostgres)になって、適当なディレクトリでアーカイブを展開し、makeコマンドを実行します。
なお、事前に環境変数PATHを確認し、もしもPostgreSQLの実行ファイルのあるディレクトリが含まれていなければ追加してください。
[root]# su postgres [postgres]$ export PATH=$PATH:/usr/local/pgsql/bin [postgres]$ tar xvfz pgmemcache_1.2beta1.tar.gz [postgres]$ cd pgmemcache_1.2beta1 [postgres]$ make && make install
※ここはPostgreSQLの実行ファイルは/usr/local/pgsql/binディレクトリにあると仮定
postgresql.confの編集
PostgreSQLの設定ファイルpostgresql.confを編集します。
パラメータ「shared_preload_libraries」と「custom_variable_classes」に「pgmemcache」を設定し、新たに「pgmemcache.default_servers」を追加します。
shared_preload_libraries = 'pgmemcache' custom_variable_classes = 'pgmemcache' pgmemcache.default_servers = '127.0.0.1:11211'
パラメータ「pgmemcache.default_servers」にはmemcachedの稼働するサーバのIPアドレスとポート番号を設定します注。
今回はPostgreSQLと同じサーバで稼働させるので「127.0.0.1:11211」を設定します。
注:パラメータpgmemcache.default_serversの設定は必須ではありません。pgmemcacheの関数memcache_server_add()でmemcachedの稼働するサーバとポート番号を後から指定することもできます。しかし、ここでは説明を簡単にするため、あらかじめサーバ情報を設定しておくことにします。
バッチファイルpgmemcache.sqlの実行
ここまでの作業が終わったら、PostgreSQLを起動します。
[postgres]$ pg_ctl -D /usr/local/pgsql/data start
今回は「testdb」というデータベースで作業するので、createdbコマンドで「testdb」を作成し、createlangコマンドでストアドプロシージャPLpgSQLを実行可能にしてください。
[postgres]$ createdb testdb [postgres]$ createlang plpgsql -d testdb
次にpsqlで「testdb」にログインし、バッチファイルpgmemcache.sqlを実行します。バッチファイルはpgmemcacheのアーカイブを展開したディレクトリにあります。
[postgres]$ psql testdb testdb=# BEGIN; BEGIN testdb=# \i /usr/local/src/pgmemcache_1.2beta1/pgmemcache.sql SET CREATE FUNCTION CREATE FUNCTION <略> CREATE FUNCTION testdb=# COMMIT; COMMIT
ここでpgmemcache.sqlはl/usr/local/src/pgmemcache_1.2beta1/にあると仮定
このバッチファイルにはpgmemcacheの関数がCREATE FUNCTION文で定義されています。よって、バッチファイルの実行によって初めてpgmemcacheの関数が実行可能となります。
以上で、PostgreSQLからmemcachedを利用する準備が整いました。
今回はmemcachedとpgmemcacheの導入について紹介しました。次回は、この環境を使って実際にPostgreSQLからmemcachedを使ってみます。
著者略歴
鈴木 啓修
某電器メーカーの研究員を皮切りにエンジニアとしてのキャリアを重ねる。データベース、OS、分散システム、プログラム検証論、形式的仕様記述、関数型言語、スペイン移住に興味がある。
著書に『PostgreSQL完全機能リファレンス』(秀和システム)、『MySQL全機能リファレンス』(技術評論社)、『標準PostgreSQL』(ソフトバンククリエイティブ)などがある。
Copyright © ITmedia, Inc. All Rights Reserved.