SPOP

레디스 개발자 교육 신청 레디스 정기점검/기술지원
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 명령과 같이 기록한다. 그러므로 데이터의 정합성이 깨질일은 없다.

  • 입력
  • spop myset
  • AOF 기록
  • *3
    $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 답글이 올라오면 이메일로 알려드리겠습니다.