前回までに,
クライアントライブラリを用いた開発
WebアプリケーションからRedisにアクセスするには,
ニコニコ生放送では,
今回から掲載するサンプルコードでもこれらのライブラリを使っていきますので,
LIST型の構造
RedisのLIST型は,
LIST型の内部構造は連結リストであるため,
Redisのコマンドリファレンスには各コマンドの時間計算量が記載されていますので,
LIST型が有効なケース
前述の特徴から,
- 要素の追加が高頻度に発生する
- 要素が時系列
(追加順) に表示される - 最近追加された要素にアクセスが集中する
例えば,
LIST型に向かないケース
連結リストであるため,
ニコニコ生放送での利用例
ユーザー生放送一覧ページ
ニコニコ生放送システムでのLIST型の応用として代表的なのが,
リアルタイムログ機能
リアルタイムログ機能は,
リストの構築とページネーションの実装
あるコンテンツのページネーション機能つきの一覧ページを構築するコードを例として,
リストの構築
要素追加はLPUSH/
次のコードは,
<?php
function contents_list_push($id) {
$redis = new Redis();
$redis->connect('localhost', 6379);
$redis->lpush('contents_list', $id);
$redis->close();
}
複数の要素を一度に追加する場合には,
<?php
function contents_list_push_array($idarray) {
$redis = new Redis();
$redis->connect('localhost', 6379);
$pipe = $redis->multi(Redis::PIPELINE);
foreach ($idarray as $id) {
$pipe->lpush('contents_list', $id);
}
$pipe->exec();
$redis->close();
}
phpredisでは,