FuelPHPのキャッシュライブラリ – redis編


今回は、redisストレージ

Redis

まず、cacheのコンフィグファイルをapp配下にコピーします。

cp fuel/core/config/cache.php fuel/app/config/

以下のように「fuel/app/config/cache.php」の内容を設定します。

return array(
  'driver' => 'redis',
  'expiration' => null,
  'cache_id' => 'fuel',
  'redis'  => array(
    'database' => 'default'
  ),
);

4行目の「cache_id」は初期のconfigに入っていませんが、redisストレージのソースの中で、key値を保存しているキーの名前に使用されています。(設定していない場合は「fuel」と言う値が使用されます)

これで「redis」ストレージをキャッシュに使用する設定ができました。

とりあえず、キャッシュを生成して試してみます。

コードの内容は、

コントローラー

public function action_redis()
{
    // String
    Cache::set('string', 'cache test');
    $data['string'] = Cache::get('string');

    // Array
    $a = array(1, 2, array('key' => 'value'));
    Cache::set('array', $a);
    $data['array'] = Cache::get('array');

    // Object
    $o = new Library_Test();
    Cache::set('object', $o);
    $data['object'] = Cache::get('object');

    return Response::forge(View::forge('cache/redis', $data));
}

View

<html>
<body>
<p>Cache - Redis</p>
<div>String:<?php var_export($string) ?></div>
<div>Array :<?php var_export($array) ?></div>
<div>Class :<?php var_export($object) ?></div>
</p>
</body>
</html>

こんな感じです。

この時に使用したLibrary_Testオブジェクトのソースは、

<?php
class Library_Test {
  public static function _init()
  {
  }

  public function __toString()
  {
    return 'Library_Test';
  }

}

こんな感じです。

(Library_Testの設置場所は「fuel/app/classes/library/test.php」です)

でアクセスしてみると、

恒例のエラーがでました。redisをインストールしてませんでした。

ということでインストール(epelリポジトリなので、もしかすると環境によってはyumのリポジトリが見つからない可能性があります。その場合は、こちらを参考にリポジトリを追加するか、自力でphpのmemcached extensionをインストールしてください)

sudo yum install redis
sudo /etc/init.d/redis start

で、再度アクセス

こんな感じになります。

登録されているキャッシュのデータを確認すると

こんな感じでした。

キーの管理が少し他のストレージと違いましたがデータの保存は同じ形で登録されていました。

次回は、configの設定以外でのcacheの使用方法をやってみたいと思います。

関連する記事:

Facebookでコメント

コメント

  1. コメント 0

  1. トラックバック 0

*

return top