spop
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 コマンドのように記録します。 そのためデータの整合性が崩れることはありません。
- 入力
- AOF 記録
spop myset
*3
$4
SREM
$5
myset
$1
B
$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
返事がかかってなれば、メールでお知らせします。
