Redisson——RTopic 简单学习心得

前言:

本章只用于 RTpoic 个人学习经验记录,供后续自我复习,如有错误,欢迎指出~~~

RTpoic简介:

RTpoic 是 Redisson 提供的用于实现发布-订阅(Pub/Sub)模式的类,它封装了 Redis 的发布和订阅功能,让开发者能够轻松地在分布式环境中进行消息的发布和订阅。

实际上类似于Kafka、RocketMQ等一系列MessageQueue的生产-消费关系;

神奇的功能:

自产自销~ 简单的来说,可以实现一个服务中,自己发布消息,自己订阅消息进行消息的分发处理

代码示例:

1、引入redisson依赖

<!-- redis -->
<dependency>
     <groupId>org.redisson</groupId>
     <artifactId>redisson-spring-boot-starter</artifactId>
     <version>3.15.5</version>
</dependency>

2、创建一个指定发布-订阅的真实类型

/**
 * 功能:监听器指定泛型类
 *
 * @author aminzi
 * @email aminzi97@163.com
 * @Date 2024/3/7 20:25
 */
@Data
public class RTopicMsgEvent implements Serializable {
  private static final long serialVersionUID = -1L;

  private String orderNo;
}

3、创建一个主题监听器

/**
 * 功能:主题消息监听器
 *
 * @author aminzi
 * @email aminzi97@163.com
 * @Date 2024/3/7 20:27
 */
@Slf4j
@Service
public class RTopicListener implements MessageListener<RTopicMsgEvent> {

  public static final String TOPIC = "myRTopic";

  @Override
  public void onMessage(CharSequence charSequence, RTopicMsgEvent rTopicMsgEvent) {
    // 订阅到的消息
    System.out.println(rTopicMsgEvent.getOrderNo());
  }
}

4、注册Bean

/**
 * 功能:RTopic配置类
 *
 * @author aminzi
 * @email aminzi97@163.com
 * @Date 2024/3/7 20:24
 */
@Slf4j
@Configuration
public class RTopicConfiguration {

  @Autowired
  RedissonClient redissonClient;
  @Autowired
  RTopicListener rTopicListener;


  /**
   * addListener:泛型类、监听器
   * @return
   */
  @Bean("rTopicMsgEventHandel")
  public RTopic redisDownMsgEventTopic() {
    /* 发布对应的主题 */
    RTopic topic = redissonClient.getTopic(RTopicListener.TOPIC);
    /* 对该主题添加监听器 */
    topic.addListener(RTopicMsgEvent.class, rTopicListener);
    return topic;
  }
}

5、编写测试接口发布消息

/**
 * 功能:redis测试接口
 *
 * @author aminzi
 * @email aminzi97@163.com
 * @Date 2024/3/7 20:30
 */
@RestController
@RequestMapping("/redis")
public class RTopicController {

  @Autowired
  RTopic rTopic;

  @PostMapping("/rTopicTest")
  public String rTopicTest(){
    RTopicMsgEvent event = new RTopicMsgEvent();
    event.setOrderNo("这是我自己发布的消息");
    rTopic.publish(event);
    return "rTopicTest";
  }
}

6、监听

当某主题的消息被发布到对应主题后,对应主题的泛型真实类监听器将会对消息进行监听

至此,RTopic基础学习到这结束~~~

有问题欢迎指出~~~

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Redisson 是一个基于 RedisJava 驻内存数据网格和分布式锁的开源客户端。它提供了许多简单易用的功能,可以方便地操作 Redis 数据库。 以下是 Redisson简单使用步骤: 1. 引入 Redisson 依赖:在 Maven 项目中,在 pom.xml 文件中添加以下依赖: ```xml <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.15.5</version> </dependency> ``` 2. 创建 Redisson 客户端:使用 RedissonClient 接口创建一个 Redisson 客户端实例,连接到 Redis 服务器。例如,可以使用 Redisson.create() 方法创建一个默认配置的 Redisson 客户端实例: ```java import org.redisson.Redisson; import org.redisson.api.RedissonClient; import org.redisson.config.Config; public class RedissonExample { public static void main(String[] args) { // 创建配置对象 Config config = new Config(); config.useSingleServer().setAddress("redis://127.0.0.1:6379"); // 创建Redisson客户端 RedissonClient redisson = Redisson.create(config); // 关闭Redisson客户端 redisson.shutdown(); } } ``` 3. 使用 Redisson 客户端操作 Redis 数据库:通过 RedissonClient 实例,可以使用各种方法来操作 Redis 数据库。例如,可以使用 RMap、RLock 等接口来进行数据的增删改查、分布式锁的获取和释放等操作。 ```java import org.redisson.api.RMap; import org.redisson.api.RLock; public class RedissonExample { public static void main(String[] args) { // ... // 获取一个 Map 对象,并进行操作 RMap<String, String> map = redisson.getMap("myMap"); map.put("key1", "value1"); map.put("key2", "value2"); System.out.println(map.get("key1")); // 输出: value1 // 获取一个分布式锁,并进行操作 RLock lock = redisson.getLock("myLock"); lock.lock(); try { // 执行需要加锁的代码块 System.out.println("Locked"); } finally { lock.unlock(); } // ... } } ``` 以上是 Redisson简单使用示例。根据具体需求,你可以使用 Redisson 提供的丰富功能来操作 Redis 数据库,如分布式集合、分布式对象、分布式服务等。你可以参考 Redisson 的官方文档和示例代码来深入了解更多功能和用法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值