一、用list实现队列
rpush和lpop右进左出,lpush和rpop左进右出实现FIFO单向队列。
public class QueueTest<T> extends AbstractQueue { private String qName; public QueueTest(String qName){ this.qName = qName; } @Override public Iterator iterator() { throw new UnsupportedOperationException(); } @Override public int size() { return RedisUtils.llen(qName).intValue(); } @Override public boolean offer(Object o) { return RedisUtils.rpush(qName,o.toString()) == 1; } @Override public Object poll() { return RedisUtils.lpop(qName); } @Override public Object peek() { return RedisUtils.lindex(qName,0L); } }
二、用zset实现延迟队列