redis做同步或异步队列

本文探讨了如何利用Redis的list数据结构实现队列,通过lpop和blpop方法处理同步和异步需求,并讨论了其可能的缺点,如连接管理与消息确认。此外,还提到了使用zset实现延迟队列的方案及其局限性,最后指出在关键场景下MQ的优势。
摘要由CSDN通过智能技术生成

redis实现队列主要是使用数据结构中的list,相当于Java中的ArrayList因为它是按照塞入顺序排序的结构,我们就可以按照左边塞入,右边取出的方式来实现先入先出的队列需求。

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.close();
            }
        }
    }
public void blpop(String key) {
        Jedis jedis = null;
        try {
            jedis = jedisPool.getResource();
            while (true){
                List<String> val=jedis.brpop(1,key);//尾部取出
                if(val != null){
                    System.out.println(val);
                }
            }

        } catch (Exception e) {
            throw e;
        } finally {
            if(jedis != null){
                jedis.close();
            }
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值