はじめに
この実験(Lab)では、Redis の set 操作について学びます。特に、順序付けられていないユニークな文字列のコレクションの操作に焦点を当てます。SADD コマンドを使用して set に要素を追加する方法、SUNION で set の和集合を求める方法、SINTER で共通要素を見つける方法、SDIFF で set 間の差を識別する方法を学びます。最後に、set 操作の結果を後で使用するために保存する方法を学びます。
この実験(Lab)では、Redis の set 操作について学びます。特に、順序付けられていないユニークな文字列のコレクションの操作に焦点を当てます。SADD コマンドを使用して set に要素を追加する方法、SUNION で set の和集合を求める方法、SINTER で共通要素を見つける方法、SDIFF で set 間の差を識別する方法を学びます。最後に、set 操作の結果を後で使用するために保存する方法を学びます。
このステップでは、SADD コマンドを使用して Redis の set に要素を追加する方法を学びます。Redis の set は、順序付けられていないユニークな文字列のコレクションです。これは、set 内の各要素が一意である必要があり、要素が set に追加される順序は保持されないことを意味します。
SADD コマンドは、1 つ以上のメンバーを set に追加します。指定されたメンバーがすでに set のメンバーである場合、それは無視されます。set が存在しない場合は、指定されたメンバーを持つ新しい set が作成されます。
まず、Redis サーバーに接続しましょう。ターミナルを開き、次のコマンドを実行します。
redis-cli
このコマンドは、Redis コマンドラインインターフェース(CLI)を開きます。
次に、my_set という名前の set にいくつかの要素を追加しましょう。次のコマンドを実行します。
SADD my_set "apple" "banana" "cherry"
このコマンドは、文字列 "apple"、"banana"、および "cherry" を set my_set に追加します。出力は、set に正常に追加された要素の数を表す整数になります。この場合、出力は 3 になるはずです。
(integer) 3
次に、すでに set に存在する要素を追加してみましょう。次のコマンドを実行します。
SADD my_set "apple"
このコマンドは、文字列 "apple" を set my_set に追加しようとします。ただし、"apple" はすでに set のメンバーであるため、無視されます。出力は 0 になり、新しい要素が追加されなかったことを示します。
(integer) 0
要素が set に追加されたことを確認するには、SMEMBERS コマンドを使用できます。次のコマンドを実行します。
SMEMBERS my_set
このコマンドは、set my_set のすべてのメンバーのリストを返します。出力は次のようになります。
1) "cherry"
2) "banana"
3) "apple"
出力内の要素の順序は、追加された順序と異なる場合があることに注意してください。これは、set が順序付けられていないコレクションであるためです。
最後に、Redis CLI を終了します。
exit
コマンドを記録するために、redis-cli を終了することが重要です。
これで、SADD コマンドを使用して Redis set に要素を正常に追加できました。これは、Redis で set を操作するための基本的な操作であり、次のステップでより複雑な操作を実行するために使用されます。
このステップでは、SUNION コマンドを使用して複数の Redis set の和集合を計算する方法を学びます。set の和集合とは、元の set のいずれかに存在するすべてのユニークな要素を含む新しい set です。
まず、my_set2 という名前の新しい set にいくつかの要素を追加しましょう。次のコマンドを使用して Redis サーバーに接続します。
redis-cli
次に、my_set2 に要素を追加します。
SADD my_set2 "banana" "grape" "orange"
このコマンドは、"banana"、"grape"、および "orange" を my_set2 に追加します。出力は 3 になるはずです。
(integer) 3
これで、2 つの set、my_set ("apple"、"banana"、"cherry" を含む) と my_set2 ("banana"、"grape"、"orange" を含む) ができたので、SUNION コマンドを使用してそれらの和集合を計算できます。次のコマンドを実行します。
SUNION my_set my_set2
このコマンドは、my_set と my_set2 の和集合を返します。出力は、いずれかの set に存在するすべてのユニークな要素のリストになります。
1) "orange"
2) "grape"
3) "apple"
4) "banana"
5) "cherry"
"banana" は my_set と my_set2 の両方に存在しますが、結果には 1 回しか表示されないことに注意してください。これは、set にはユニークな要素のみが含まれているためです。結果内の要素の順序は保証されません。
最後に、Redis CLI を終了します。
exit
SUNION コマンドは、set の和集合をクライアントに直接返します。結果を新しい set に保存する場合は、SUNIONSTORE コマンドを使用できますが、この実験(Lab)では扱いません。
このステップでは、SUNION コマンドを使用して複数の Redis set の和集合を計算する方法を学びました。これは、複数の set からのデータを 1 つの set に結合するのに役立つ操作です。
このステップでは、SINTER コマンドを使用して複数の Redis set の積集合を計算する方法を学びます。set の積集合とは、元の set の すべて に存在する要素のみを含む新しい set です。
次のコマンドを使用して Redis サーバーに接続します。
redis-cli
すでに 2 つの set、my_set ("apple"、"banana"、"cherry" を含む) と my_set2 ("banana"、"grape"、"orange" を含む) があります。SINTER コマンドを使用してそれらの積集合を計算しましょう。次のコマンドを実行します。
SINTER my_set my_set2
このコマンドは、my_set と my_set2 の積集合を返します。出力は、両方の set に存在するすべての要素のリストになります。
1) "banana"
"banana" のみが my_set と my_set2 の両方に存在することに注意してください。したがって、2 つの set の積集合は、"banana" のみを含む set です。
3 番目の set my_set3 を追加し、"banana" と "apple" を追加しましょう。
SADD my_set3 "banana" "apple"
出力は 2 になるはずです。
(integer) 2
次に、my_set、my_set2、および my_set3 の積集合を計算しましょう。次のコマンドを実行します。
SINTER my_set my_set2 my_set3
このコマンドは、3 つの set すべての積集合を返します。出力は次のようになります。
1) "banana"
"banana" のみが 3 つの set すべてに存在します。
最後に、Redis CLI を終了します。
exit
SINTER コマンドは、set の積集合をクライアントに直接返します。結果を新しい set に保存する場合は、SINTERSTORE コマンドを使用できます。これについては後で学習します。
このステップでは、SINTER コマンドを使用して複数の Redis set の積集合を計算する方法を学びました。これは、複数の set 間の共通要素を見つけるのに役立つ操作です。
このステップでは、SDIFF コマンドを使用して Redis set 間の差集合を計算する方法を学びます。set 間の差集合とは、最初の set には存在するが、後続の set には存在しない要素のみを含む新しい set です。
次のコマンドを使用して Redis サーバーに接続します。
redis-cli
3 つの set があります:my_set ("apple"、"banana"、"cherry" を含む)、my_set2 ("banana"、"grape"、"orange" を含む)、および my_set3 ("banana"、"apple" を含む)。SDIFF コマンドを使用して、my_set と my_set2 の差集合を計算しましょう。次のコマンドを実行します。
SDIFF my_set my_set2
このコマンドは、my_set と my_set2 の差集合を返します。出力は、my_set には存在するが my_set2 には存在しないすべての要素のリストになります。
1) "apple"
2) "cherry"
"apple" と "cherry" は my_set にはありますが、my_set2 にはありません。"banana" は両方の set にあるため、結果には含まれません。
次に、my_set と my_set2 および my_set3 の両方の差集合を計算しましょう。次のコマンドを実行します。
SDIFF my_set my_set2 my_set3
このコマンドは、my_set と my_set2 および my_set3 の和集合との差集合を返します。出力は次のようになります。
1) "cherry"
"apple" は my_set にはありますが、my_set3 にもあるため、除外されます。"banana" は my_set にはありますが、my_set2 と my_set3 にもあるため、除外されます。"cherry" のみが my_set に排他的に存在します。
最後に、Redis CLI を終了します。
exit
SDIFF コマンドは、set の差集合をクライアントに直接返します。結果を新しい set に保存する場合は、SDIFFSTORE コマンドを使用できます (この実験(Lab)では扱いません)。
このステップでは、SDIFF コマンドを使用して Redis set 間の差集合を計算する方法を学びました。これは、特定の set に固有の要素を見つけるのに役立つ操作です。
このステップでは、SINTERSTORE コマンドを使用して、積集合演算の結果を新しい set に保存する方法を学びます。これは、set の積集合に対して、毎回再計算せずにさらに演算を実行したい場合に役立ちます。
次のコマンドを使用して Redis サーバーに接続します。
redis-cli
3 つの set があります:my_set ("apple"、"banana"、"cherry" を含む)、my_set2 ("banana"、"grape"、"orange" を含む)、および my_set3 ("banana"、"apple" を含む)。前のステップでは、これらの set の積集合を計算し、"banana" のみが 3 つすべてに存在することを確認しました。
次に、SINTERSTORE コマンドを使用して、my_set、my_set2、および my_set3 の積集合の結果を、intersection_set という名前の新しい set に保存しましょう。次のコマンドを実行します。
SINTERSTORE intersection_set my_set my_set2 my_set3
このコマンドは、my_set、my_set2、および my_set3 の積集合を計算し、その結果を intersection_set という名前の新しい set に保存します。出力は、結果の set 内の要素数を表す整数になります。この場合、積集合には 1 つの要素 ("banana") しか含まれていないため、出力は 1 になるはずです。
(integer) 1
積集合が正しく保存されていることを確認するには、SMEMBERS コマンドを使用して intersection_set のメンバーを表示します。次のコマンドを実行します。
SMEMBERS intersection_set
このコマンドは、set intersection_set のすべてのメンバーのリストを返します。出力は次のようになります。
1) "banana"
これにより、my_set、my_set2、および my_set3 の積集合が intersection_set に正常に保存されたことが確認されます。
最後に、Redis CLI を終了します。
exit
このステップでは、SINTERSTORE コマンドを使用して、積集合演算の結果を新しい set に保存する方法を学びました。これにより、再計算することなく、後続の演算で積集合の結果を再利用できます。
この実験(Lab)では、SADD コマンドを使用して Redis set に要素を追加する方法を学びました。Redis set は一意な文字列の順序付けられていないコレクションです。つまり、各要素は一意である必要があり、順序は保持されません。
SADD コマンドは、重複を無視して、1 つ以上のメンバーを set に追加します。この実験(Lab)では、set への要素の追加、追加された要素の数を示す戻り値の観察、および SMEMBERS を使用した set の内容の検証を実演しました。set の順序付けられていない性質のため、SMEMBERS の出力順序は挿入順序と異なる場合があります。また、SUNION を使用して set の和集合を計算する方法、SINTER を使用して共通要素を見つける方法、SDIFF を使用して set 間の差を識別する方法、および SINTERSTORE を使用して set 演算の結果を後で使用するために保存する方法も学びました。コマンドが確実にログに記録されるように、各ステップの後に redis-cli を終了することを忘れないでください。