Redis は本質的に Key/Value データベースであり、Memcached に似た NoSQL データベースですが、そのデータはディスク上に永続化できるため、サービスの再起動後にデータが失われないという問題が解決されます。 、その値は文字列 (文字列)、リスト (リスト)、セット (コレクション)、または順序付きセット (ソートされたセット) です。すべてのデータ型には、セット、交差などのプッシュ/ポップ、追加/削除、サーバー側マージ操作があります。 、2 つのセット間の違いなどはすべてアトミックです。Redis はさまざまなソート機能もサポートしています
。Redis 2.0 では、パフォーマンスの向上、新しいデータ型、メモリ使用量の削減 (AOF および VM) など、多くの新機能が追加されています
PHPredis は PHP の拡張機能であり、非常に効率的で、メモリレベルのモジュールのビジネス関係を作成するのに役立ちます。
redis が公式に提供しているコマンドの使い方のヒントは以下の通りです:Redis::__construct コンストラクター
$redis = new Redis();
接続、リンク Redis サービスを開く
パラメータ
ホスト: 文字列、サービスアドレス
ポート: int、ポート番号
タイムアウト: float、リンク期間(オプション、デフォルトは0、リンク時間に制限なし)
注: redis.conf にも時間があります。デフォルトは 300 です
Pingして接続状況を確認します
Getは、特定のキーの値(文字列値)を取得します
キーが存在しない場合は特殊な値 nil を返し、キーが文字列型でない場合はエラーを返します
setはキーと値(文字列値)を書き込みます
Redis バージョン 2.6.12 より前では、set コマンドは常に OK を返しました。
Redis バージョン 2.6.12 以降、set は、設定操作が正常に完了した場合にのみ OK を返します。
NXまたはXXが設定されているが、条件を満たさないため設定操作が実行されない場合、コマンドはNULL Bulk Replyを返します。
生存時間付きのsetex書き込み値
値 value をキーに関連付け、キーの有効期間を秒 (秒単位) に設定します。
keyが既に存在する場合、SETEXコマンドは古い値を上書きします。
このコマンドは、次の 2 つのコマンドに似ています:
キー値の設定
EXPIREキー秒数 # 生存時間を設定する
違いは、SETEX がアトミック操作であり、値の関連付けと生存時間の設定という 2 つのアクションが同時に完了することです。
このコマンドは、Redisをキャッシュとして使用する場合に非常に便利です。
#粒子
$redis->setex(‘key’, 3600, ‘value’); // 1h TTL でキー→値を設定します。
Setnx は繰り返されるかどうかを判断し、値を書き込みます
#キーが存在しない場合にのみ、キーの値を value に設定します。 指定されたキーがすでに存在する場合、SETNX は何もアクションを実行しません
$redis->setnx(‘key’, ‘value’);
$redis->setnx(‘key’, ‘value’);
deleteは指定されたキーの値を削除します
削除されたキーの数を返します (長整数)
$redis->delete(‘key1’, ‘key2’);
$redis->delete(array(‘key3’, ‘key4’, ‘key5’));
ttl
キーの生存時間を取得する
持続する
生存期限が切れたキーを削除します
キーの有効期限が切れる場合は true、期限が切れない場合は false
mset (redis バージョン 1.1 以降でのみ使用可能)
同時に複数のキーに値を割り当てます
$redis->mset(array(‘key0’ => ‘value0’, ‘key1’ => ‘value1’));
存在します
キーが存在するかどうかを確認します。 true が存在し、false ではありません
$redis->exists(‘test’);
増分、増分By
keyの値は1ずつインクリメントされます。2番目のパラメータが入力されている場合は、2番目のパラメータに入力された値だけインクリメントされます
$redis->incr(‘key1’);
$redis->incrBy(‘key1’, 10);
decr, decrBy
引き算をするには、incrと同じメソッドを使用します
複数を取得する
高麗人参を移す
キーで構成される配列
パラメータを返す
キーが存在する場合は値を返し、存在しない場合はfalseを返す
$redis->set(‘key1’, ‘value1’);
$redis->set(‘key2’, ‘value2’);
$redis->set(‘key3’, ‘value3’);
$redis->getMultiple(array(‘key1’, ‘key2’, ‘key3’));
$redis->lRem(‘key1’, ‘A’, 2);
$redis->lRange(‘key1’, 0, -1);#すべてのリストを取得します
関連する操作のリスト
lプッシュ
$redis->lPush(key, value);
値がvalueである要素をkeyという名前のリストの左側(先頭)に追加します
rプッシュ
$redis->rPush(key, value);
keyという名前のリストの右側(最後)にvalueをvalueとする要素を追加します
lプッシュx/rプッシュx
$redis->lPushx(キー, 値);
key という名前のリストの左 (先頭)/右 (末尾) に値を持つ要素を追加します。値が既に存在する場合は追加されません。
lポップ/rポップ$redis->lPop(‘key’);
keyという名前のリストの左(先頭)/右(末尾)から最初の要素を出力し、その要素を削除します
blポップ/brポップ
$redis->blPop(‘key1’, ‘key2’, 10);
lpopコマンドのブロック版。つまり、タイムアウトが 0 の場合、key i という名前のリストが存在しないか、リストが空の場合、コマンドは終了します。 timeout>0 の場合、上記の状況が発生した場合は、timeout 秒間待ち、問題が解決しない場合は、keyi+1 から始まるリストに対してポップ操作を実行します
。
Lサイズ$redis->lSize(‘key’);
keyという名前のリストに含まれる要素の数を返します
lインデックス、l取得
$redis->lGet(‘key’, 0);
keyという名前のリストのインデックス位置にある要素を返します
lセット
$redis->lSet(‘key’, 0, ‘X’);
key という名前のリスト内のインデックス位置の要素に値を割り当てます
lRange、lGetRange
$redis->lRange(‘key1’, 0, -1);
keyという名前のリストのstartとendの間の要素を返します(endは-1、すべてを返します)
lTrim、listTrim
$redis->lTrim(‘key’, start, end);
keyという名前のリストをインターセプトし、要素を開始と終了の間に保持します
lレム、l削除
$redis->lRem(‘key’, ‘A’, 2);
keyという名前のリストの値がvalueであるcount要素を削除します。 count は 0、値を持つすべての要素を削除します、count>0 は値を持つ count 要素を最初から最後まで削除します、count l挿入
key という名前のリストで pivot の値を見つけ、パラメータ Redis::BEFORE | Redis::AFTER に従って newvalue がピボットの前に配置されるか後に配置されるかを決定します。キーが存在しない場合は挿入されません。ピボットが存在しない場合は -1 を返します
。
$redis->delete('key1'); $redis->lInsert('key1', Redis::AFTER, 'A', 'X'); $redis->lPush('key1', ' A'); $redis->lPush('key1', 'B'); $redis->lInsert('key1', Redis::前、'C'、'X');$redis->lRange(‘key1’, 0, -1);
$redis->lInsert(‘key1’, Redis::AFTER, ‘C’, ‘Y’);
$redis->lRange(‘key1’, 0, -1);
$redis->lInsert(‘key1’, Redis::AFTER, ‘W’, ‘value’);
rpoplpush
srckeyというリストの末尾要素を返して削除し、その要素をdstkeyというリストの先頭に追加します
$redis->delete(‘x’, ‘y’);
$redis->lPush('x', 'abc'); $redis->lPush('x', 'def'); $redis->lPush('y', '123'); redis->lPush('y', '456'); // x の最後の部分を y の前に移動します。
var_dump($redis->lRange(‘x’, 0, -1));
var_dump($redis->lRange(‘y’, 0, -1));
文字列(3)「abc」
array(1) { [0]=> string(3) “def” }
array(3) { [0]=> string(3) “abc” [1]=> string(3) “123″ }
SET操作関連
追加
要素の値を key という名前のセットに追加します。値が存在する場合は書き込まず、false を返します。
$redis->sAdd(key, value);sRem、sRemove
keyという名前のセット内の要素の値を削除します
$redis->sAdd(‘key1’, ‘set1’);
$redis->sAdd(‘key1’, ‘set2’);
$redis->sAdd(‘key1’, ‘set3’);
$redis->sRem(‘key1’, ‘set2’);
移動
srckeyという名前のコレクションからdstkeyという名前のコレクションにvalue要素を移動します
$redis->sMove(seckey, dstkey, value);
s はメンバー、s は含まれます
keyという名前のコレクションにvalue要素があるかどうかを調べ、trueがあればfalseはありません
$redis->sIsMember(key, value);
sカード、sサイズ
keyという名前のセットの要素の数を返します
sポップ
key という名前のセット内の要素をランダムに返して削除します
ランドメンバー
key という名前のセット内の要素を削除せずにランダムに返します
sインター
交差点を探す
インターストア
交差を見つけて出力コレクションに保存します
$redis->sInterStore(‘output’, ‘key1’, ‘key2’, ‘key3’)
ユニオン
組合を見つけよう
$redis->sUnion(‘s0’, ‘s1’, ‘s2’);
s0、s1、s2の和集合を同時に求めます
ユニオンストア
ユニオンを見つけて出力コレクションに保存します
$redis->sUnionStore(‘output’, ‘key1’, ‘key2’, ‘key3’);
違い
間違い探しセット
sDiffStore
差分セットを見つけて、差分セットを出力セットに保存します
sメンバー、sGetMembers
key という名前のセットのすべての要素を返します
並べ替え
並べ替え、ページングなど
パラメータ
「by」 => 「some_pattern_*」、
‘limit’ => array(0, 1),
「get」 => 「some_other_pattern_*」 またはパターンの配列、
「sort」=>「asc」または「desc」、
「アルファ」 => TRUE、
「ストア」 => 「外部キー」
例
$redis->delete('s'); $redis->sadd('s', 4); ', 2); $redis->sadd('s', 1); $redis->sadd('s', 3);
var_dump($redis->sort(‘s’)) // 1,2,3,4,5var_dump($redis->sort(‘s’, array(‘sort’ => ‘desc’))); // 5,4,3,2,1
var_dump($redis->sort(‘s’, array(‘sort’ => ‘desc’, ‘store’ => ‘out’))); // (int)5
文字列コマンド
getSet
元のキーの値を返し、その値をキーに書き込みます
$redis->set(‘x’, ’42’);
$exValue = $redis->getSet(‘x’, ‘lol’); // return '42'、x を ‘lol’ に置き換えます
$newValue = $redis->get(‘x’)’ // return ‘lol’
追記
文字列、keyという名前の文字列の値の後にvalueが続きます
$redis->set(‘key’, ‘value1’);
$redis->append(‘key’, ‘value2’);
$redis->get(‘key’);
getRange(メソッドが存在しません)
keyという名前の文字列の開始と終了の間の文字を返します
$redis->set(‘キー’, ‘文字列値’);
$redis->getRange(‘key’, 0, 5);
$redis->getRange(‘key’, -5, -1);
setRange(メソッドが存在しません)
キー文字列の開始と終了の間の文字を値に変更します
$redis->set(‘key’, ‘Hello world’);
$redis->setRange(‘key’, 6, “redis”);
$redis->get(‘key’);
ストレン
キーの文字列の長さを取得する
$redis->strlen(‘key’);
getBit/setBit
バイナリ情報を返す