FuelPHPでRedisを使用する
FuelPHPには、標準でRedisクラスが用意されている為、特別な事をする必要はなく、そのままRedisへアクセスが可能です。
例によって、ソート済みセット型を使用した、ランキング風のサンプルで試しました。
以下は、ユーザー名と年齢のリストをソート済みセット型に追加し、要素を取得するサンプルになります。
<?php class Controller_Redistest extends Controller { public function action_index() { $redis = Redis::instance('default'); $staff = array( 'staff1' => 30, 'staff2' => 25, 'staff3' => 42, 'staff4' => 60, 'staff5' => 38 ); foreach ($staff as $name => $age) { // 年齢をスコアとして、スタッフ名をメンバーとして登録 $redis->zadd('mysort', $age, $name); } // 年齢の昇順リスト $list = $redis->zrange('mysort', 0, count($staff)); // 年齢の降順リスト $rlist = $redis->zrevrange('mysort', 0, count($staff)); // 昇順の場合の staff4 の順位(ランクが0から始まる為、1を足す) $rank = $redis->zrank('mysort', 'staff4') + 1; // 降順の場合の staff4 の順位(ランクが0から始まる為、1を足す) $rrank = $redis->zrevrank('mysort', 'staff4') + 1; ... } }
Redis::instanceにセットする名前は『fuel/app/config/db.php』の『redis』に設定した名前になります。
'redis' => array( 'default' => array( 'hostname' => '127.0.0.1', 'port' => 6379 ) ),