@Override
    public V remove() {
        V value = poll();
        if (value == null) {
            throw new NoSuchElementException();
        }
        return value;
    }
@Test
    public void testRemove() throws InterruptedException {
        RBlockingQueue<String> blockingFairQueue = redisson.getBlockingQueue("delay_queue");
        RDelayedQueue<String> delayedQueue = redisson.getDelayedQueue(blockingFairQueue);
        
        delayedQueue.offer("1_1_1", 3, TimeUnit.SECONDS);
        delayedQueue.offer("1_1_2", 7, TimeUnit.SECONDS);
        assertThat(delayedQueue.contains("1_1_1")).isTrue();
        assertThat(delayedQueue.remove("1_1_1")).isTrue();
        assertThat(delayedQueue.contains("1_1_1")).isFalse();

        Thread.sleep(9000);
        
        assertThat(blockingFairQueue).containsOnly("1_1_2");
    }