ガジェット通信

見たことのないものを見に行こう

ディレクターなら知っておきたいキャッシュサーバ「memcached」の基礎知識【PHP編】

DATE:
  • ガジェット通信を≫

こんにちは、ディレクターのJackです。
夏が終わりますね。今年は夏らしいことを一切やっておりません。浜辺でBBQがしたいです。

さて、今回は下記の続編です。

前回はtelnetからmemcachedを利用する方法をご紹介させていただきましたが、本日はPHPからmemcachedを利用してみましょう。
実際にコーディングしてみるとテンション上がりますよね。

memcachedとは?

まずは前回のおさらいから。
memcachedとは、データとオブジェクトをメモリ内にキャッシュするサーバで、データベースからの参照回数を削減する際に利用します。特に、データベースを用いたWebサイトを高速化するために用いられます。

memcachedライブラリをインストールする

今回はPHPから利用するため、memcachedライブラリをインストールします。
インストール環境も前回と同じ「Ubuntu 14.04」です。

下記コマンドを入力し、memcachedのライブラリをインストールしましょう。

$ sudo apt-get install php5-memcached

準備はこれで終了です。

プログラムを書いてみよう

下記3つの処理をPHPで書いてみましょう。

データを保存する
データを参照する
データを削除する

データを保存する

memcachedにデータを保存する際は、setメソッドを利用します。

例えば、「liginc」というキーに対して「jack」という「4バイト」の文字列で「600秒間(10分間)」保存する際は、下記プログラムとなります。

<?php
/* Memcachedのオブジェクトを作成 */
$mem = new Memcached();

/* サーバ情報を指定 */
$mem->addServer(‘localhost’, 11211);

/* Memcachedに値をセットする */
/* ligincというキーでjackという値(文字列)を600秒間保持する */
$res = $mem->set(‘liginc’, ‘jack’, 600);

if ($res) {
echo "memcachedへのデータ保存に成功しました。n";
} else {
echo "memcachedへのデータ保存に失敗しました。n";
}

実行してみましょう。

$ php set.php
memcachedへのデータ保存に成功しました。

無事データの保存が完了しました。

PHPの公式ドキュメント
Memcached::set

データを参照する

memcachedへのデータ保存に成功したので、次はデータを取り出す作業です。
データを取り出す際には、getメソッドを利用します。

プログラムは下記となります。

<?php
/* Memcachedのオブジェクトを作成 */
$mem = new Memcached();

/* サーバ情報を指定 */
$mem->addServer(‘localhost’, 11211);

/* Memcachedから値を取得する */
/* ligincというキーでMemcachedに格納されているデータを取得する */
$value = $mem->get(‘liginc’);

/* 取得したデータを表示する */
if (!empty($value)) {
echo $value . "n";
} else {
echo "値がセットされていません。n";
}

実行してみましょう。

$ php get.php
jack

「jack」という文字列が返却されましたね。成功です。

PHPの公式ドキュメント
Memcached::get

データを削除する

memcachedに保存されたデータを削除するには、deleteメソッドを利用します。

プログラムは下記となります。

<?php
/* Memcachedのオブジェクトを作成 */
$mem = new Memcached();

/* サーバ情報を指定 */
$mem->addServer(‘localhost’, 11211);

/* Memcachedから値を削除する */
$res = $mem->delete(‘liginc’);

/* 取得したデータを表示する */
if (!empty($res)) {
echo "値の削除に成功しました。n";
} else {
echo "値の削除に失敗しました。n";
}

実行してみましょう。

$ php del.php
値の削除に成功しました。
$ php get.php
値がセットされていません。

get.phpを実行しても値がセットされていないことが確認できました。
削除成功です。

PHPの公式ドキュメント
Memcached::delete

終わりに

いかがでしたか?
今回は実際にプログラムを通してmemcachedの簡単な使い方をご紹介させていただきました。難しそうなキャッシュ機能も、実際にプログラムを書いてみると理解が深まると思います。
ディレクターでもプログラムを書く文化が根付けば、ディレクションの幅が広がりもっと楽しくなりそうですね!

カテゴリー : 生活・趣味 タグ :
LIGの記事一覧をみる ▶
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。

TOP