Redis_Db クラス

Redis_Db クラスは、key-value ストアである Redis とデータをやり取りすることができます。

設定

すべての Redis データベースの接続設定は、app/config/<environment>/db.php の redis 配列の中で設定されている必要があります。設定オプションと説明を下にリストアップしました。すべての設定には、ホスト名とポートが必須となります。

パラメータ デフォルト 説明
hostname string
'127.0.0.1'
ホスト名
port integer
6379
接続を受け付けるポート
timeout mixed
null
接続のタイムアウト
database integer
0
0 が基点となるデータベース番号
password mixed
null
データベースが認証を要求する場合のパスワード。

forge($name = 'default', $config = array())

新しい名前の redis インスタンスを作成します。必要に応じて、設定を変更することができます。

静的 はい
パラメータ
パラメータ デフォルト 説明
$name
'default'
新しい redis インスタンスの名前。アプリケーションの db.php 設定ファイルであらかじめ定義しておくことができます。
$config
array()
カスタム設定。 db.php 設定ファイルで定義されている値を上書きすることができます。
返り値 Fuel\Core\Redis オブジェクト
// 'mystore' という Redis インスタンスを作成
$redis = Redis_Db::forge('mystore');

instance($name = 'default')

以前に作成したインスタンスを名前を指定して返します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$name
'default'
forge() メソッドで事前に作成されているインスタンスの名前。
返り値 Fuel\Core\Redis オブジェクト
// 'mystore' という Redis インスタンスを取り出す
$redis = Redis_Db::instance('mystore');

Redis のコマンド

一度 redis オブジェクトを作成したらあとは instance() メソッドを使います。様々な redis コマンド (Redis ドキュメントを参照のこと) はオブジェクトのメソッドのように使うことができます。

いくつかの例:

// 'mystore' という Redis インスタンスを作成
$redis = Redis_Db::forge('mystore');

// テストデータを作成
$redis->rpush('particles', 'proton');
$redis->rpush('particles', 'electron');
$redis->rpush('particles', 'neutron');

// 範囲を指定して取り出す
$particles = $redis->lrange('particles', 0, -1);

// 要素の数をカウント
$particle_count = $redis->llen('particles');

// 結果を表示
echo "<p>The {$particle_count} particles that make up atoms are:</p>";
echo "<ul>";
foreach ($particles as $particle) {
  echo "<li>{$particle}</li>";
}
echo "</ul>";

パイプライニング

いくつかの Redis コマンドをつなげることができ、それは 1 度だけ実行されます。

例:

// 'mystore' という Redis インスタンスを作成
$redis = Redis_Db::forge('mystore');

// いくつかの redis コマンドをパイプラインして実行
$result = $redis->pipeline()
	->sadd('list', 4)
	->sadd('list', 1)
	->sadd('list', 55)
	->execute();