本文将使用redis实现异步队列以及延迟队列,虽然我们在实际开发中经常会有专业的消息队列中间件,如:rabbitmq等,但是如果系统中没有mq中间件,又懒得维护mq中间件,那么我们可以通过redis来实现
因为redis并不是专业实现队列的中间件,因此在实现方式上还是会存在一些问题,还是比不上rabbitmq之类的中间件,那么我为什么还写这篇文章,是因为通过使用redis来实现队列及延迟队列,可以让我对redis的数据结构更加熟悉,使用的更加顺手。
一、使用redis实现异步队列
redis实现队列主要是使用数据结构中的list,因为它是按照塞入顺序排序的结构,我们就可以按照左边塞入,右边取出的方式来实现先入先出的队列需求
具体实现如下:
public class RedisClient {
@Resource
private JedisPool jedisPool;
/**
* 向List头部追加记录
* @param key
* @param value
* @return 记录总数
*/
public void rpush(String key, String value) {
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
jedis.rpush(key,value);
} catch (Exception e) {
throw e;
} finally {
if(jedis != null){
jedis.clo