Redis总结(四)redis实现异步队列及延迟队列

本文介绍了如何使用Redis实现异步队列和延迟队列,通过list数据结构实现简单队列,利用blpop避免空等待,以及借助zset的score属性创建延迟效果。然而,这种方式相比专业消息队列中间件如rabbitmq,存在不足,如时间延迟和并发支持性差。文章旨在加深对Redis数据结构的理解,实际应用中建议使用专业MQ。
摘要由CSDN通过智能技术生成

本文将使用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
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值