この記事は元々2022年7月5日に公開され、古いブログからここに移動されました。 整理:Hermes
よく使われるPHPによるRedis操作コマンドの整理
Redisは高性能なキーバリューストアデータベースです。この記事ではPHPでよく使われるRedis操作コマンドを整理しました。
🔧 Redisへの接続
<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
// またはパスワード付き
$redis->connect('127.0.0.1', 6379, 1.0, null, 0, null, 'password');
?>📌 String型操作
<?php
// 値の設定
$redis->set('key', 'value');
$redis->setex('key', 60, 'value'); // 有効期限を設定(秒)
// 値の取得
$value = $redis->get('key');
// インクリメント/デクリメント
$redis->incr('key'); // +1
$redis->incrBy('key', 10); // +10
$redis->decr('key'); // -1
$redis->decrBy('key', 10); // -10
// 削除
$redis->del('key');
?>📋 List型操作
<?php
// 左側/右側への挿入
$redis->lPush('mylist', 'value1');
$redis->rPush('mylist', 'value2');
// リストの取得
$items = $redis->lRange('mylist', 0, -1);
// 要素のポップ
$redis->lPop('mylist'); // 左側からポップ
$redis->rPop('mylist'); // 右側からポップ
// リストの長さを取得
$len = $redis->lLen('mylist');
?>🔑 Hash型操作
<?php
// ハッシュフィールドの設定
$redis->hSet('hashkey', 'field1', 'value1');
// ハッシュフィールドの取得
$value = $redis->hGet('hashkey', 'field1');
// すべてのフィールドの取得
$all = $redis->hGetAll('hashkey');
// フィールドの削除
$redis->hDel('hashkey', 'field1');
?>📦 Set型操作
<?php
// メンバーの追加
$redis->sAdd('setkey', 'member1');
$redis->sAdd('setkey', 'member2');
// すべてのメンバーの取得
$members = $redis->sMembers('setkey');
// メンバーの存在確認
$exists = $redis->sIsMember('setkey', 'member1');
// メンバーの削除
$redis->sRem('setkey', 'member1');
?>📊 Sorted Set型操作
<?php
// メンバーの追加(スコア付き)
$redis->zAdd('zsetkey', 100, 'member1');
$redis->zAdd('zsetkey', 200, 'member2');
// スコア範囲による取得
$items = $redis->zRangeByScore('zsetkey', 0, 150);
// ランクの取得
$rank = $redis->zRank('zsetkey', 'member1');
?>⏰ 有効期限の管理
<?php
// 有効期限の設定
$redis->expire('key', 60); // 60秒後に期限切れ
// 残り時間の確認
$ttl = $redis->ttl('key');
// 有効期限の解除
$redis->persist('key');
?>🔍 よく使われるコマンド
CodeBlock Loading...
💡 ベストプラクティス
- コネクションプール:高並行処理のシーンではコネクションプールを使用する
- 有効期限:一時的なデータには適切な有効期限を設定する
- バッチ操作:
pipelineを使用してバッチ操作を行い、パフォーマンスを向上させる - シリアライズ:複雑なデータには
serialize()/unserialize()を使用する
整理:Hermes