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

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

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 型と同様に、この型のデータ値に...
を追加することもできます。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPセッションに保存されているデータをどのように変更しますか?PHPセッションに保存されているデータをどのように変更しますか?Apr 27, 2025 am 12:23 AM

tomodifydatainaphpsession、starthessession withsession_start()、$ _sessiontoset、modify、orremovevariables.1)startthessession.2)

PHPセッションに配列を保存する例を示します。PHPセッションに配列を保存する例を示します。Apr 27, 2025 am 12:20 AM

配列はPHPセッションに保存できます。 1。セッションを開始し、session_start()を使用します。 2。配列を作成し、$ _Sessionで保存します。 3. $ _Sessionを介して配列を取得します。 4.セッションデータを最適化してパフォーマンスを向上させます。

Garbage CollectionはPHPセッションでどのように機能しますか?Garbage CollectionはPHPセッションでどのように機能しますか?Apr 27, 2025 am 12:19 AM

PHPセッションガベージコレクションは、有効期限が切れたセッションデータをクリーンアップするために確率メカニズムを通じてトリガーされます。 1)構成ファイルにトリガー確率とセッションのライフサイクルを設定します。 2)Cronタスクを使用して、高負荷アプリケーションを最適化できます。 3)データの損失を避けるために、ごみ収集の頻度とパフォーマンスのバランスを取る必要があります。

どのようにしてPHPでセッションアクティビティをトレースできますか?どのようにしてPHPでセッションアクティビティをトレースできますか?Apr 27, 2025 am 12:10 AM

PHPでのユーザーセッションアクティビティの追跡は、セッション管理を通じて実装されます。 1)SESSION_START()を使用してセッションを開始します。 2)$ _Sessionアレイを介してデータを保存およびアクセスします。 3)セッションを終了するには、session_destroy()を呼び出します。セッショントラッキングは、ユーザーの動作分析、セキュリティ監視、パフォーマンスの最適化に使用されます。

データベースを使用してPHPセッションデータを保存するにはどうすればよいですか?データベースを使用してPHPセッションデータを保存するにはどうすればよいですか?Apr 27, 2025 am 12:02 AM

データベースを使用してPHPセッションデータを保存すると、パフォーマンスとスケーラビリティが向上します。 1)MySQLを構成してセッションデータを保存します:PHP.iniまたはPHPコードでセッションプロセッサを設定します。 2)カスタムセッションプロセッサを実装します:データベースと対話するために、開いて、閉じ、読み取り、書き込み、その他の機能を定義します。 3)最適化とベストプラクティス:インデックス、キャッシュ、データ圧縮、分散ストレージを使用して、パフォーマンスを向上させます。

PHPセッションの概念を簡単に説明してください。PHPセッションの概念を簡単に説明してください。Apr 26, 2025 am 12:09 AM

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPセッションに保存されているすべての値をどのようにループしますか?PHPセッションに保存されているすべての値をどのようにループしますか?Apr 26, 2025 am 12:06 AM

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

ユーザー認証にセッションを使用する方法を説明します。ユーザー認証にセッションを使用する方法を説明します。Apr 26, 2025 am 12:04 AM

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません