ホームページ > バックエンド開発 > PHPチュートリアル > php-redis 中国語ヘルプマニュアルセット関連_sAdd_sRem_sRemove_sMove_s..._PHP チュートリアル

php-redis 中国語ヘルプマニュアルセット関連_sAdd_sRem_sRemove_sMove_s..._PHP チュートリアル

WBOY
リリース: 2016-07-13 17:52:47
オリジナル
1134 人が閲覧しました

データ型関連の操作を設定する

Redis では、Set 型を並べ替えられていない文字のコレクションとみなすことができ、List 型と同様に、この型のデータ値に対して要素の追加、削除、または存在するかどうかの判断などの操作を実行することもできます。これらの操作の時間計算量は O(1)、つまり操作は一定時間で完了することに注意してください。 Set に含めることができる要素の最大数は 4294967295 です。

List 型とは異なり、Set コレクションでは重複要素は許可されません。これは、C++ 標準ライブラリの Set コンテナーとまったく同じです。つまり、同じ要素を複数回追加した場合、その要素のコピーは 1 つだけセット内に保持されます。 Set 型は、List 型と比較して、複数の Set 間の和集合、積集合、差分などの集計演算がサーバー側で完結するという非常に重要な機能的特徴もあります。これらの操作はサーバー側で完了するため、非常に効率的であり、ネットワーク IO オーバーヘッドを大幅に節約できます。

追加
説明
key に格納されている設定値に値を追加します。この値がすでにセットに含まれている場合は、FALSE が返されます。

SET コンテナに VALUE を追加します。 VALUE が既に SET に存在する場合は、FLASE を返します。

パラメータ
キー値

戻り値
BOOL 値が存在せず、正常に追加された場合は TRUE、値がすでに存在する場合は FALSE。

VALUE が SET に存在しない場合、ADDED は成功し、TRUE を返します。FALSE を返す必要があります。

$redis->sAdd('key1' , 'member1') /* TRUE, 'key1' => {'member1'} */
; $redis->sAdd('key1' , 'member2') /* TRUE, 'key1' => {'member1', 'member2'}*/
; $redis->sAdd('key1' , 'member2') /* FALSE, 'key1' => {'member1', 'member2'}*/
; sRem、sRemove
説明
key に格納されている設定値から指定されたメンバーを削除します。

指定されたVALUEをSETコンテナから削除します

パラメータ

主要メンバー

戻り値

BOOL メンバーがセット内に存在する場合は TRUE、存在しない場合は FALSE。

$redis->sAdd('key1' , 'member1');

$redis->sAdd('key1' , 'member2');
$redis->sAdd('key1' , 'member3') /* 'key1' => {'member1', 'member2', 'member3'}*/
; $redis->sRem('key1', 'member2') /* 'key1' => {'member1', 'member3'} */
; 移動
説明
指定されたメンバーを srcKey のセットから dstKey のセットに移動します。

指定された MEMBER をソース SET から別の指定された SET に移動します。

パラメータ

srcKey dstKey メンバー


戻り値

BOOL 操作が成功した場合は TRUE を返します。 srcKey や dstKey が存在しなかった場合、または srcKey にメンバーが存在しなかった場合は、FALSE が返されます。

操作が成功した場合、ソース SET またはターゲット SET が存在しない場合、またはソース SET に MEMBER が存在しない場合は、FLASE が返されます。

$redis->sAdd('key1' , 'member11');

$redis->sAdd('key1' , 'member12');

$redis->sAdd('key1' , 'member13') /* 'key1' => {'member11', 'member12', 'member13'}*/
$redis->sAdd('key2' , 'member21');
$redis->sAdd('key2' , 'member22') /* 'key2' => {'member21', 'member22'}*/
; $redis->sMove('key1', 'key2', 'member13'); /* 'key1' => {'member11', 'member12'} */
/* 'key2' => sIsMember、sContains
説明
値がキー key に格納されているセットのメンバーであるかどうかを確認します。

VALUE が SET コンテナのメンバーであるかどうかを確認します。

パラメータ

キー値

戻り値

BOOL 値がキー key のセットのメンバーである場合は TRUE、それ以外の場合は FALSE。

$redis->sAdd('key1' , 'member1');

$redis->sAdd('key1' , 'member2');
$redis->sAdd('key1' , 'member3') /* 'key1' => {'member1', 'member2', 'member3'}*/

;

$redis->sIsMember('key1', 'member1'); /* TRUE */
$redis->sIsMember('key1', 'memberX'); /* FALSE */
sカード、sサイズ
説明

キーで識別されたセットのカーディナリティを返します。


SETコンテナのメンバー数を返します

パラメータ

戻り値
LONG キーによって識別されるセットのカーディナリティ。セットが存在しない場合は 0。


$redis->sAdd('key1' , 'member1');
$redis->sAdd('key1' , 'member2');
$redis->sAdd('key1' , 'member3'); /* 'key1' => {'メンバー 1', 'メンバー 2', 'メンバー 3'}*/
$redis->sCard('key1'); /* 3 */
$redis->sCard('keyX'); /* 0 */
ポップ
説明
Key に設定された値からランダムな要素を削除して返します。

要素を機械的に返し、SET コンテナ内でその要素を削除します。

パラメータ


戻り値

文字列「ポップされた」値
キーで識別されるセットが空か存在しない場合は Bool FALSE

$redis->sAdd('key1' , 'member1');
$redis->sAdd('key1' , 'member2');
$redis->sAdd('key1' , 'member3'); /* 'key1' => {'メンバー 3', 'メンバー 1', 'メンバー 2'}*/
$redis->sPop('key1'); /* 'member1', 'key1' => {'メンバー 3', 'メンバー 2'} */
$redis->sPop('key1'); /* 'member3', 'key1' => {'メンバー2'} */
sランドメンバー
説明
Key の設定値からランダムな要素を削除せずに返します。

指定されたSETコンテナ内の有機要素を取得しますが、SETコンテナ内でそれを削除することはできません。

パラメータ


戻り値

セットの文字列値

キーで識別されるセットが空か存在しない場合は Bool FALSE

$redis->sAdd('key1' , 'member1');

$redis->sAdd('key1' , 'member2');
$redis->sAdd('key1' , 'member3'); /* 'key1' => {'メンバー 3', 'メンバー 1', 'メンバー 2'}*/
$redis->sRandMember('key1'); /* 'member1', 'key1' => {'メンバー 3', 'メンバー 1', 'メンバー 2'} */
$redis->sRandMember('key1'); /* 'member3', 'key1' => {'メンバー 3', 'メンバー 1', 'メンバー 2'} */
インター
説明
指定されたキーに保持されているすべてのセットの交差から得られるセットのメンバーを返します。単一のキーだけが指定されている場合、このコマンドはこのセットのメンバーを生成します。キーの 1 つが欠落している場合は、FALSE が返されます。

指定されたSETSセットの交雑結果を返します。SETセットのみが指定された場合は、そのSETセットを返します。パラメータにパラメータ指定がある場合は、FLASEを返します。

パラメータ

key1、key2、keyN: 交差を適用するさまざまなセットを識別するキー。

パラメータ数列表、異なるSETセットを表します。
戻り値

配列。これらのキー間の交差の結果が含まれます。異なるセット間の共通部分が空の場合、戻り値は空の​​配列になります。

数値グループ内の結果がすべての SET セットの交合結果である場合は、空の数値グループが返されます。


$redis->sAdd('key1', 'val1');

$redis->sAdd('key1', 'val2');

$redis->sAdd('key1', 'val3');

$redis->sAdd('key1', 'val4');


$redis->sAdd('key2', 'val3');
$redis->sAdd('key2', 'val4');

$redis->sAdd('key3', 'val3');

$redis->sAdd('key3', 'val4');


var_dump($redis->sInter('key1', 'key2', 'key3'));

出力:


配列(2) {

  [0]=>

  文字列(4) "val4"
  [1]=>

  文字列(4) "val3"

}
インターストア
説明
sInter コマンドを実行し、結果を新しいセットに保存します。

交換操作を実行し、結果を新しい SET コンテナに保存します。
パラメータ
キー: dstkey、差分を保存するキー。

キー保存結果のSETコンテナKEY

キー: key1、key2...keyN。 key1..keyN は sInter.

のように交差します。
交流コレクションのキーを要求します

戻り値

INTEGER: 結果のセットのカーディナリティ、またはキーが欠落している場合は FALSE。

$redis->sAdd('key1', 'val1');

$redis->sAdd('key1', 'val2');

$redis->sAdd('key1', 'val3');
$redis->sAdd('key1', 'val4');

$redis->sAdd('key2', 'val3');
$redis->sAdd('key2', 'val4');

$redis->sAdd('key3', 'val3');
$redis->sAdd('key3', 'val4');

var_dump($redis->sInterStore('output', 'key1', 'key2', 'key3'));
var_dump($redis->sMembers('output'));
出力:

int(2)

配列(2) {
  [0]=>
  文字列(4) "val4"
  [1]=>
  文字列(4) "val3"
}
ユニオン
説明
N 個のセット間の結合を実行し、それを返します。

N 個の SET コンテナ間で操作を実行して収集し、結果を返します。

パラメータ

キー: key1、key2、...、keyN: Redis 内のセットに対応する任意の数のキー

戻り値

文字列の配列: これらすべてのセットの結合です。

一数组を返します

$redis->delete('s0', 's1', 's2');

$redis->sAdd('s0', '1');

$redis->sAdd('s0', '2');
$redis->sAdd('s1', '3');
$redis->sAdd('s1', '1');
$redis->sAdd('s2', '3');
$redis->sAdd('s2', '4');

var_dump($redis->sUnion('s0', 's1', 's2'));

戻り値: s0、s1、または s2 のいずれかにあるすべての要素

配列(4) {

  [0]=>
  文字列(1) "3"
  [1]=>
  文字列(1) "4"
  [2]=>
  文字列(1) "1"
  [3]=>
  文字列(1) "2"
}
ユニオンストア
説明
sUnion と同じアクションを実行しますが、結果を最初のキーに保存します

操作と sUnion() を実行して収集しますが、結果は最初のパラメータに含まれます。

パラメータ

キー: dstkey、差分を保存するキー。


保存結果のSETセットKEY

キー: key1、key2、...、keyN: Redis 内のセットに対応する任意の数のキー。

収集したキーを要求します

戻り値

INTEGER: 結果のセットのカーディナリティ、またはキーが欠落している場合は FALSE。


整数値を返します: 結果の数値を収集します。

$redis->delete('s0', 's1', 's2');

$redis->sAdd('s0', '1');
$redis->sAdd('s0', '2');

$redis->sAdd('s1', '3');

$redis->sAdd('s1', '1');
$redis->sAdd('s2', '3');
$redis->sAdd('s2', '4');

var_dump($redis->sUnionStore('dst', 's0', 's1', 's2'));
var_dump($redis->sMembers('dst'));

戻り値: s0、s1、または s2 のいずれかにある要素の数


int(4)
配列(4) {

  [0]=>

  文字列(1) "3"
  [1]=>
  文字列(1) "4"
  [2]=>
  文字列(1) "1"
  [3]=>
  文字列(1) "2"
}
違います
説明
N セットの差分を実行して返します。
この操作は、計算された他の SET セットに対する最初の SET の差分演算を取得して結果を返します。 (Result = SET0 - (SET1 UNION SET2 UNION) ....SET N))

パラメータ

キー: key1、key2、...、keyN: Redis 内のセットに対応する任意の数のキー

戻り値

文字列の配列: 最初のセットの違いは、他のすべてのセットに反映されます。

返される回数グループ、返されるのは、他のセットに対する最初のセットセットの差集合(最初のセット - (N セット)) です


返回数グループ:最初のSETセットの补

$redis->delete('s0', 's1', 's2');

$redis->sAdd('s0', '1');

$redis->sAdd('s0', '2');
$redis->sAdd('s0', '3');

$redis->sAdd('s0', '4');


$redis->sAdd('s1', '1');
$redis->sAdd('s2', '3');

var_dump($redis->sDiff('s0', 's1', 's2'));

戻り値: s1 にも s2 にも存在しない s0 のすべての要素

配列(2) {

  [0]=>
  文字列(1) "4"

  [1]=>

  文字列(1) "2"
}
sDiffStore
説明
sDiff と同じアクションを実行しますが、結果を最初のキーに保存します

sDiff 関数は引き続き機能し、結果が新しい SET セットとして dstkey に保存されるだけです。
パラメータ
キー: dstkey、差分を保存するキー。

キー: 保存結果のSETセットKEY

キー: key1、key2、...、keyN: redis 内のセットに対応する任意の数のキー

SETコレクション運営に参加中

戻り値
INTEGER: 結果のセットのカーディナリティ、またはキーが欠落している場合は FALSE。

整数を返します: 結果セットの数。


$redis->delete('s0', 's1', 's2');

$redis->sAdd('s0', '1');
$redis->sAdd('s0', '2');
$redis->sAdd('s0', '3');
$redis->sAdd('s0', '4');

$redis->sAdd('s1', '1');
$redis->sAdd('s2', '3');

var_dump($redis->sDiffStore('dst', 's0', 's1', 's2'));
var_dump($redis->sMembers('dst'));
戻り値: s1 にも s2 にも存在しない s0 の要素の数

int(2)
配列(2) {
[0]=>
文字列(1) "4"
[1]=>
文字列(1) "2"
}
sメンバー、sGetMembers
説明
セットの内容を返します。

SET コレクション内のすべての要素を返します。

パラメータ
キー: キー

戻り値
要素の配列、セットの内容。


$redis->delete('s');
$redis->sAdd('s', 'a');
$redis->sAdd('s', 'b');
$redis->sAdd('s', 'a');
$redis->sAdd('s', 'c');
var_dump($redis->sMembers('s'));
出力:

配列(3) {
[0]=>
文字列(1) "c"
[1]=>
文字列(1) "a"
[2]=>
文字列(1) "b"
}
順序はランダムであり、redis 自体のセット構造の内部表現に対応します。

結果セットの順序はランダムであり、これは Redis 独自の SET データ構造の定義とも一致しています。繰り返されず、順序付けされていないコレクション。

著者: シユン・キリン

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478094.html技術記事 Set データ型関連の操作 Redis では、Set 型を List 型と同様に、この型のデータ値に...
を追加することもできます。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート