本投稿は TECOTEC Advent Calendar 2020 の9日目の記事です。
みなさま、こんにちは。ブロックチェン事業部エンジニアをしています、頼です。 最近プロジェクトに機能を開発するときに、REDISを触れました。 今回はREDISのセットを紹介します。
REDISセット基本操作
SADD
SADDの特徴はメンバーを追加することである。
sadd [KEY] [VALUE]
SREM
SREMの特徴はメンバーを削除することである。
srem [KEY] [VALUE]
SCARD
SCARDの特徴はメンバーの件数を取得することである。
scard [KEY]
SMEMBERS
SMEMBERSの特徴はメンバーリストを取得することである。
smembers [KEY]
REDISセット操作例
// データ追加 > sadd TEST_KEY "hello world" (integer) 1 > sadd TEST_KEY "good morning" (integer) 1 // メンバーリスト確認 > smembers TEST_KEY (1) "hello world" (2) "good morning" // メンバー件数確認 > scard TEST_KEY (integer) 2 // メンバー削除 > srem TEST_KEY "good morning" (integer) 1 // 存在しないメンバーを削除する場合に、0を返事する > srem TEST_KEY "good night" (integer) 0 // メンバーリスト確認 > smembers TEST_KEY (1) "hello world" // メンバー件数確認 > scard TEST_KEY (integer) 1
まとめ
REDISのメンバーでデータを操作する際に、MYSQLのやり方と似てますが、MYSQLのやり方にはメンバーという概念はないので、実際の実行理念は違います。 すると、REDISでデータを操作するときに、トランザクション機能を導入する可能性もあります。
// トランザクション開始 > multi (ok) // データ追加 > sadd TEST_KEY "hello world" (queued) > sadd TEST_KEY "good morning" (queued) // メンバーリスト確認 > smembers TEST_KEY (queued) // メンバー件数確認 > scard TEST_KEY (queued) // トランザクション実行 > exec (1) OK (2) "hello world" (3) "good morning" (4) 1) "hello world" 2) "good morning" (5) (integer) 2
最後に
REDISのトランザクションのやり方は簡単ですし、MYSQLのやり方に対してほぼ同じです。 もしやりたいコマンドはたくさんがありましたら、データの完全性を考えると、トランザクションでやった方がいいです。