복붙노트

[REDIS] 레디 스 목록에서 특정 인덱스에서 제거 요소

REDIS

레디 스 목록에서 특정 인덱스에서 제거 요소

그것은 레디 스 목록에서 특정 인덱스에서 요소를 제거 할 수 있습니까? 정말 내가 원하는 걸 찾을 수 없습니다. 당신이 요소의 특정 세트를 선택할 수 있습니다 트림이있다, LREM는 값 목록에서 항목을 삭제할 수 있습니다,하지만 난 값을 가지고 있겠지.

나는 당신이, 예를 들어 UID 또는 문자열로 요소의 값을 변경할 수 LSET를 사용 해킹을 발견 '지운',이 값에 전화 할 LREM. 이것은 단지 비록 비트 더러운 느낌.

해결법

  1. ==============================

    1.내가 원하는 것을 달성 할 수있는 유일한 방법은 다음 미리 정해진 문자열로 인덱스의 값을 설정했고 그래서 값에 의해 제거 할.

    내가 원하는 것을 달성 할 수있는 유일한 방법은 다음 미리 정해진 문자열로 인덱스의 값을 설정했고 그래서 값에 의해 제거 할.

    여기 https://groups.google.com/forum/#!topic/redis-db/c-IpJ0YWa9I 설명을 참조하십시오

    루비로는 다음과

    @redis.lset("#{@namespace}/#{specified_queue}", index, "DELETED")
    @redis.lrem("#{@namespace}/#{specified_queue}", 1, "DELETED")
    

    LSET 문서 http://redis.io/commands/lset LREM 문서 http://redis.io/commands/lrem

  2. ==============================

    2.나는 레디 스-CLI를 사용하여 인덱스에 따라이 작업을 수행 할 수있는 솔루션을 마련 할 수 있었다.

    나는 레디 스-CLI를 사용하여 인덱스에 따라이 작업을 수행 할 수있는 솔루션을 마련 할 수 있었다.

    INDEX=<index (starts at 0)>
    redis-cli -h <host> -p <port> LREM <list name> 1 "$(redis-cli -h <host> -p <port> LINDEX <list name> $INDEX)"
    

    LINDEX는 인덱스의 값 다음 LREM 사용하는 그 값을 찾아 목록에서 삭제합니다.

    나는 여기에 고유 한 값을 처리하고있다. 이것은 첫 번째 항목을 찾을 제거합니다.

  3. from https://stackoverflow.com/questions/31580535/remove-element-at-specific-index-from-redis-list by cc-by-sa and MIT license