• 一般使用list结构作为队列,rpush生产消息,lpop消费消息。当lpop没有消息的时候,要适当sleep一会再重试。

  • list还有个指令叫blpop,在没有消息的时候,它会阻塞住直到消息到来。

  • Spring提供 RedisTemplate可以很方便操作list

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Tests {

@Autowired
private StringRedisTemplate stringRedisTemplate;

@Test
public void test1 () {

for (int i = 1; i < 20; i ++) {
stringRedisTemplate.opsForList().rightPush("list_order", String.valueOf(i));
}

for (int i = 1; i < 20; i ++) {
log.info(stringRedisTemplate.opsForList().leftPop("list_order"));
}

}

}

参考