検索
連載

memcached+PostgreSQLで実現する ハイパフォーマンスWebアプリケーション構築memcachedの使い方(1)(3/4 ページ)

大規模Webサイトでの利用事例が公開されたこともあり、キャッシュサーバを使ったデータベースシステムが注目を集めつつあります。中でもmemcachedは多くのサービスで運用実績がある注目株です。MySQLでの事例が多く取り上げられていますが、本稿では安定性抜群のPostgreSQLと組み合わせた場合の実装方法を紹介していきます。

Share
Tweet
LINE
Hatena

PostgreSQLからmemcachedを使う

 pgmemcacheはPostgreSQLからmemcachedを使うためのライブラリです。pgmemcacheをインストールすると簡単にmemcachedへのデータ保存や取り出しができます。

 どれだけ簡単か、最初に実行例をお見せします。詳細は後編で説明しますが、データを保存したいなら関数memcache_add()、データを検索したいなら関数memcache_get()を実行するだけです。

testdb=# SELECT memcache_add ('key', 'data');
memcache_set 
--------------
t
(1 row)
 
testdb=# SELECT memcache_get ('key');
memcache_get 
--------------
data
(1 row)

 あまり知られていませんが、pgmemcacheはmemcachedの開発が始まった翌年の2004年にSean Chittenden氏によってリリースされた歴史あるライブラリです。

 memcachedのほぼすべてのコマンドが実行できるにもかかわらず、ソースコードは894行しかありません。なぜこれほど小さいかといえば、libmemcacheという汎用ライブラリを利用していることと、PostgreSQLには外部ライブラリを取り込む仕組みや関数を定義する仕組みがあるためです。

図5 PostgreSQLとmemcachedの関係
図5 PostgreSQLとmemcachedの関係

 pgmemcacheは、面倒な通信部分を2004年当時利用できた唯一の汎用ライブラリであるlibmemcacheに任せることで、コンパクトな実装を実現しています。

 また、PostgreSQLはリリース直後の1997年ごろから、すでに外部ライブラリをサーバ本体に組み込む仕組みや、CREATE FUNCTIONで関数を定義する機能が実装されていて、バージョンアップを重ねる度に完成度と頑健性が向上していました。つまり、簡単に機能追加できる基盤がPostgreSQLには最初から用意されていたわけです。

 もともとPostgreSQLは基本性能が高いうえに、ストアドプロシージャやトリガなど豊富な機能を有しています。さらにmemcachedとの連携も簡単にできるとあれば、これらを利用しない手はありません。

コラム3:memcachedとそのほかのコミュニティ

 memcachedの開発に関するコミュニティは、現在のところメーリングリストのみです。日本では2008年6月にユーザーグループが発足しました。

◆memcached Users Group :: Japan:http://memcached.jp/

 また、memcachedの改造や、同様の働きをする新たなシステムの開発も始まっています。以下では、memcachedと同様の機能を提供するオープンソースプロダクトを紹介します。

◆mmcmod:http://alpha.mixi.co.jp/blog/?p=129

ディスクにデータを保存するようにmemcachedを改造したものです。

◆Flared:http://labs.gree.jp/Top/OpenSource/Flared.html

memcachedとほぼ同様のプロトコルを持つ分散ストレージサーバソフトウェアで、ディスクにデータを保存します。非同期レプリケーション機能も有しています。

◆Tokyo Tyrant:http://tokyocabinet.sourceforge.net/tyrantdoc/

こちらもディスクにデータを保存するストレージサーバで、部分的にmemcachedのプロトコルをサポートしています。

◆memcachedb:http://memcachedb.org/

Tokyo Tyrant同様、ディスクにデータを保存します。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る