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