spop
SPOP
Redis Developer Course | Redis Technical Support | 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는 버전 3.2 부터 사용 가능
사용법은 spop key count 이다.
count 만큼 꺼내온다.
Example
명령> | sadd myset "멤버_1" "멤버_2" "멤버_3" |
결과> | 3 |
명령> | spop myset 2 |
결과> | 멤버_2 |
결과> | 멤버_1 |
AOF
SPOP 명령은 무작위로 값을 가져오고 원본에서 삭제한다. 그럴때 여기서 한 가지 의문점이 생긴다. AOF에 SPOP이 기록되고 서버를 다시 시작했을때 과연 같은 값이 삭제될까, 아니면 역시 무작위로 아무 값이나 선택되어 지워질까? 만약 그렇다면 데이터의 정합성이 틀어지기 때문에 안된다. 답은 레디스는 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는 버전 3.2부터 사용 가능하다.
관련 명령 | SPOP, DEL, LREM, ZREM, HDEL |
Clients for Java | Jedis, Lettuce, Redisson | Clients for C | Hiredis |
<< SMOVE | SPOP | SRANDMEMBER >> |
---|
Email
답글이 올라오면 이메일로 알려드리겠습니다.