コレクションタイプを設定する

高洛峰
リリース: 2016-10-20 14:31:46
オリジナル
5364 人が閲覧しました

3. Set コレクションの種類

はじめに

Set コレクションとリストは非常に似ており、複数の文字列を格納できます。ただし、リストには重複した値を格納できますが、セットを繰り返すことはできません。

構造を設定します

user はキー名であり、それぞれ異なる複数の非繰り返し要素を含めることができます

[
    "user":[
        "yanying1",
        "yanying2",
        "yanying3"
    ]
]
ログイン後にコピー

操作方法

コレクションタイプを設定する

デモ (コマンドライン + PHP デモ)

コマンドライン:

Add要素をセットに追加し、正常に挿入されたことを示す 1 を返します。0 要素はすでに存在することを意味します

sadd set-key item // 返回 1
ログイン後にコピー

同様に、要素をセットに追加します

sadd set-key item2 // 返回1,表示插入成功,集合内没有该元,
sadd set-key item3 // 返回
1sadd set-key item // 返回0,表示插入失败,集合内已经存在
ログイン後にコピー

追加後、セット内のすべての要素を取得して返しますすべての要素が正常に完了しました

smembers set-key // 得到结果:'item','item2','item3',由于元素不能重复,所以最后一个item不存在集合中
ログイン後にコピー

以下に、このコレクションの重要な機能を紹介します。 sismember コマンドを使用して、要素がコレクション内に存在するかどうかを確認します。要素が存在する場合は 1 を返し、存在しない場合は 0 を返します。ここで要素を削除してみます。削除が成功すると、削除された要素の数が返されます

sismember set-key item4 // 由于item4不在集合中,所以返回 0
sismember set-key item // item元素是存在于集合中的,返回1;同理item2,item3也是会返回1
ログイン後にコピー

すべての要素を再度確認すると、item2 と item3 だけが残っていることがわかります

srem set-key item //删除成功,返回删除个数:1
srem set-key item // item之前已经被删除,所以删除失败,返回个数0。这里不是表示true or false
ログイン後にコピー

PHP バージョンのデモ

最初のステップは、redis データベースをリンクすることです

smembers set-key // 返回'item2','item3'
ログイン後にコピー

まず、要素アイテムを set-key コレクションに挿入します。 1 は挿入が成功したことを表し、0 要素はすでに存在していることを表します

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
ログイン後にコピー

次に、項目を set-key コレクションに再度追加すると、すでに存在していることがわかり、0

$redis->sadd('set-key','item'); // 添加成功,返回1
ログイン後にコピー

が返されます

$redis->sadd('set-key','item'); // 集合中已经存在item,添加失败,返回0
ログイン後にコピー

次のデモンストレーションでは、いくつかの要素を追加しています

$redis->sadd('set-key','item2');
$redis->sadd('set-key','item3');
ログイン後にコピー

コレクションには 3 つの要素があります。smembers コマンドを使用してそれらをすべて取り出します

$r = $redis->smembers('set-key');
var_dump($r);
ログイン後にコピー

印刷後、item、item2、item3 を含む配列を取得します

array (size=3)
  0 => string 'item' (length=4)
  1 => string 'item2' (length=5)
  2 => string 'item3' (length=5)
ログイン後にコピー

次に、セット内に要素が存在するかどうかを確認する sismember コマンド。これは、ニックネームが既に存在するかどうかを確認するときに非常に便利です

$redis->sismember('set-key','item'); //该元素存在集合中,则为 boolean true,反之boolean false
ログイン後にコピー

最後に、要素を削除します。それがアイテムであると仮定し、セット内に要素が存在する場合は、削除されたアイテムの数が返されます: 1

$redis->srem('set-key','item'); // int 1
ログイン後にコピー

このとき、要素が no であるため、再度削除コマンドを実行します。セット内に存在しなくなった場合、削除されたアイテムは 0 個返されます

$redis->srem('set-key','item'); // int 0
ログイン後にコピー


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート