REDISのセットを紹介します。

本投稿は 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のやり方に対してほぼ同じです。 もしやりたいコマンドはたくさんがありましたら、データの完全性を考えると、トランザクションでやった方がいいです。

PR

www.tecotec.co.jp