Reddision实现消息队列

用Reddision实现消息队列

因公司特殊业务情况,没有用常规mq实现消息队列,用redission玩手了一把消息队列
直接上代码

yml配置

#1、单机模式
redisson:
  address: redis://localhost:6379

RedissonProperties

package com.shunicom.ordermanager.config.redission;

import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * @description:
 * @author: zhaiguowen
 * @email: [email protected]
 * @time: 2020/8/26 14:11
 */
@ConfigurationProperties(prefix = "redisson")
public class RedissonProperties {
   

    private int timeout = 3000;

    private String address;

    private String password;

    private int connectionPoolSize = 64;

    private int connectionMinimumIdleSize=10;

    private int slaveConnectionPoolSize = 250;

    private int masterConnectionPoolSize = 250;

    private String[] sentinelAddresses;

    private String masterName;

    public int getTimeout() {
   
        return timeout;
    }

    public void setTimeout(int timeout) {
   
        this.timeout = timeout;
    }

    public int getSlaveConnectionPoolSize() {
   
        return slaveConnectionPoolSize;
    }

    public void setSlaveConnectionPoolSize(int slaveConnectionPoolSize) {
   
        this.slaveConnectionPoolSize = slaveConnectionPoolSize;
    }

    public int getMasterConnectionPoolSize() {
   
        return masterConnectionPoolSize;
    }

    public void setMasterConnectionPoolSize(int masterConnectionPoolSize) {
   
        this.masterConnectionPoolSize = masterConnectionPoolSize;
    }

    public String[] getSentinelAddresses() {
   
        return sentinelAddresses;
    }

    public void setSentinelAddresses(String sentinelAddresses) {
   
        this.sentinelAddresses = sentinelAddresses.split(",");
    }

    public String getMasterName() {
   
        return masterName;
    }

    public void setMasterName(String masterName) {
   
        this.masterName = masterName;
    }

    public String getPassword() {
   
        return password;
    }

    public void setPassword(String password) {
   
        this.password = password;
    }

    public String getAddress() {
   
        return address;
    }

    public void setAddress(String address) {
   
        this.address = address;
    }

    public int getConnectionPoolSize() {
   
        return connectionPoolSize;
    }

    public void setConnectionPoolSize(int connectionPoolSize) {
   
        this.connectionPoolSize = connectionPoolSize;
    }

    public int getConnectionMinimumIdleSize() 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis可以通过发布/订阅模式、列表和阻塞队列等方式实现消息队列。 1. 发布/订阅模式 Redis提供了发布/订阅模式,可以用于实现消息队列。在发布/订阅模式中,消息的生产者将消息发布到指定的频道,而消息的消费者则订阅相应的频道,当有消息发布到订阅的频道时,消费者就会立即收到消息。 使用发布/订阅模式实现消息队列的步骤如下: - 生产者将消息发布到指定的频道,使用PUBLISH命令。 - 消费者订阅相应的频道,使用SUBSCRIBE命令。 - 当有消息发布到订阅的频道时,消费者会立即收到消息。 2. 列表 Redis的列表可以用于实现简单的消息队列。在列表中,生产者将消息插入列表的尾部,而消费者则从列表的头部获取消息,可以使用LPUSH命令将消息插入列表的头部,使用RPOP命令从列表的尾部获取消息。 使用列表实现消息队列的步骤如下: - 生产者将消息插入列表的尾部,使用LPUSH命令。 - 消费者从列表的头部获取消息,使用RPOP命令。 - 如果列表为空,消费者可以使用阻塞命令BRPOP来等待消息的到来。 3. 阻塞队列 Redis提供了阻塞命令BRPOP和BLPOP,可以用于实现阻塞队列。在阻塞队列中,生产者将消息插入队列的尾部,而消费者则从队列的头部获取消息,如果队列为空,消费者会一直阻塞等待,直到队列中有消息到来。 使用阻塞队列实现消息队列的步骤如下: - 生产者将消息插入队列的尾部,使用LPUSH命令。 - 消费者从队列的头部获取消息,使用BRPOP命令。 - 如果队列为空,消费者会一直阻塞等待,直到队列中有消息到来。 以上三种方式都可以用于实现Redis的消息队列,具体选择哪种方式,需要根据实际的业务需求和性能要求来进行选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值