SPOP

Redis 開発者教育の申込 Redis 定期点検/技術サポート
Redis Technical Support
Redis エンタープライズサーバー
Redis Enterprise Server

集合から無作為に member を取り出す

使い方は spop key です。
無作為に member を取り出します。集合から member は削除されます。

Example

コマンド>sadd myset "メンバー_1" "メンバー_2" "メンバー_3"
結果>3
コマンド>spop myset
結果> メンバー_2    無作為に メンバー_2 が出た
コマンド>smembers myset
結果> 1) メンバー_3
1) メンバー_1
コマンド>spop myset
結果> メンバー_1

アニメーションを見る



count は version 3.2 から使用できます

使い方は spop key count です。
count 個取り出します。

Example

コマンド>sadd myset "メンバー_1" "メンバー_2" "メンバー_3"
結果>3
コマンド>spop myset 2
結果> メンバー_2
結果> メンバー_1


AOF

SPOP コマンドは無作為に値を取り出して元から削除します。ここで一つの疑問が生まれます。 AOF に SPOP が記録され、サーバーを再起動したとき果たして同じ値が削除されるのか、 それともやはり無作為にどれかの値が選ばれて消えるのか。もしそうならデータの整合性が崩れるのでいけません。 答えは Redis は AOF に SPOP を記録せず、選ばれて削除されたデータを SREM コマンドのように記録します。 そのためデータの整合性が崩れることはありません。

  • 入力
  • spop myset
  • AOF 記録
  • *3
    $4
    SREM
    $5
    myset
    $1
    B


構文

SPOP key [count]

  • このコマンドは version 1.0.0 から使用できます。
  • 時間計算量は O(1) です。
  • count は version 3.2 から使用できます。
関連コマンド SPOP, DEL, LREM, ZREM, HDEL
Clients for Java Jedis, Lettuce, Redisson
Clients for C Hiredis

<< SMOVE SPOP SRANDMEMBER >>

Email 返事がかかってなれば、メールでお知らせします。