Redisは、アイテムのコレクションを保存するためにいくつかのデータ型をサポートしています。これらには、Lisrt(リスト)、Set(セット)、Hash(ハッシュ)が含まれます。先週のブログ記事では、リストデータ型について説明し、それらを管理するための主なコマンドのいくつかを取り上げました。今日のフォローアップでは、セットタイプに注目します。Redisでは、セットはその要素の特定の順序を保持せず、各要素が一意である必要があることを除けば、リストに似ています。この記事では、redis-cliを介した場合と Navicat for Redis を使用した場合について、セットを管理するための主なコマンドのいくつかについて説明します。
セットの作成
Redisでは、指定されたメンバーをキーに追加するSADDコマンドを使用してセットを作成できます:
SADD key member [member ...]
前述したように、各要素は一意である必要があります。そのため、既にセットの一部である指定されたメンバーは無視されます。キーが存在しない場合は、新しいセットが作成され、指定された一意のメンバーが追加されます。キーがすでに存在する場合、または、キーがセットでない場合は、エラーが返されます。
"vehicles"セットを作成するコマンドは次のとおりです:
SADD vehicles "Infiniti" // 1 SADD vehicles "Mazda" // 1 SADD vehicles "Ford" "Mercedes" // 2 SADD vehicles "Porsche" "Mercedes" // 1
SADDコマンドは、セットのサイズではなく、そのステートメントで追加されたメンバーの数を返すことに注意してください。最後の行には、既に"Mercedes"値があったため、要素が1つだけ追加されたことがわかります。
Navicatでのセットの作成
Navicat for Redis エディタでは、セット値は要素として表示されます。要素の右側にある省略記号[...]ボタンをクリックすると、特別なエディタが開き、個々のセット要素を入力できます:
適用ボタンをクリックすると、新しいセットまたは要素が追加されます。Navicatは重複した値を自動的に削除します。
セットからのメンバーの削除
SREMコマンドを使用して、セットからメンバーを削除できます:
SREM key member [member ...]
SREM vehicles "Mazda" "Mercedes" // 2 SREM vehicles "Dodge" // 0
SADDコマンドと同様に、SREMは削除されたメンバーの数を返します。
Navicatエディタでは、セット要素を選択し、要素値の下にある削除[-]ボタンをクリックすることで、セット要素を削除できます:
値が存在することの確認
メンバーがセットの一部であることを確認するためには、SISMEMBERコマンドを使用します:
SISMEMBER key member
メンバーがセットの一部である場合、このコマンドは1を返します。それ以外の場合は0を返します:
SISMEMBER vehicles "Infiniti" // 1 SISMEMBER vehicles "Alfa Romeo" // 0
セットの表示
セットに存在する全てのメンバーを表示するためには、SMEMBERSコマンドを使用します:
SMEMBERS key
現在vehiclesセットに何が含まれているか見てみましょう:
SMEMBERS vehicles // returns "Infiniti", "Ford", "Porsche"
セットの結合
SUNIONコマンドを使用すると、セットを非常に簡単に結合させることができます:
SUNION key [key ...]
SUNIONへの各引数は、より大きなセットにマージしたいセットを表します。要素の一意性を維持するために、重複するメンバーは削除されることに注意してください。
"Corvette"と"Alfa Romeo"の値を含むmore_vehiclesという名前の別のセットがあるとします。次のように、vehiclesセットとmore_vehiclesセットの両方の全てのメンバーを表示できます:
SUNION vehicles more_vehicles // "Infiniti", "Ford", "Porsche", "Corvette", "Alfa Romeo"
結論
このブログ記事では、redis-cliを介する場合と Navicat for Redis を使用する場合について、Redisでセットを管理するための主なコマンドのいくつかを取り上げました。
Navicat for Redisを試してみたい場合は、こちらから こちら からダウンロードしてください。トライアル版では14日間全ての機能を使用できます。