jedis 模式实现redis广播模式

本文介绍了在项目中利用redis的Pub/Sub功能实现多台机器间的广播同步,以替代MQ,并详细阐述了实现步骤,包括引入jar包、实现监控器和订阅类型、配置redis客户端连接和配置类。
摘要由CSDN通过智能技术生成

jedis 模式实现redis广播模式


前言

提示:这里可以添加本文要记录的大概内容:

项目背景是由于项目中很多表数据是存在redis缓存中,由于项目是多台机器部署,所以一个接口是无法实现多台机器同步刷新缓存,而且项目中没有用到MQ,即使用redis广播

提示:以下是本篇文章正文内容,下面案例可供参考

一、redis广播是什么?

Pub/Sub功能(means Publish, Subscribe)即发布及订阅功能。基于事件的系统中,Pub/Sub是目前广泛使用的通信模型,它采用事件作为基本的通信机制,提供大规模系统所要求的松散耦合的交互模式:订阅者(如客户端)以事件订阅的方式表达出它有兴趣接收的一个事件或一类事件;发布者(如服务器)可将订阅者感兴趣的事件随时通知相关订阅者。熟悉设计模式的朋友应该了解这与23种设计模式中的观察者模式极为相似,

二、使用步骤

1.首先引入所需要的jar包

在这里插入图片描述

2.需要实现监控器和订阅类型

代码如下(示例):



@Slf4j
@Component
public class RedisMessageConfig {
   

    @Autowired
    private ServerConfig serverConfig;

    @Autowired
    private RedisPubMessageListener redisPubMessageListener;

    private ScheduledExecutorService scheduledExecutorService;

    public static String CHANNEL="pzchannel";

    public static String CHANNEL_MSG="flushRedisChannelMsg";





    @PostConstruct
    public void initRedisPub() {
   
        timingThread(null);
    }

    private void timingThread(final Jedis jedis) {
   
        try {
   

            new Thread(new Runnable() {
   
                @Override
                public void run() {
   
                    RedisConnect redisConnect = SingleRedisConnect.getInstance(serverConfig);
                    JedisCluster jedisCluster = redisConnect.getJedisCluster();
                    log.info("初始化redis广播注册[同步阻塞线程]...");
                    jedisCluster.subscribe(redisPubMessageListener, CHANNEL);
                }
            }).start();
        } catch (Exception e) {
   
            log.error("初始化redis广播注册异常", e);
        }

    }

    @PreDestroy
    public void destroySingleThreadScheduledExecutor() {
   
        try {
   
            doDestroySingleThreadScheduledExecutor();
        } catch (Throwable t) {
   
        }

    }

    private void doDestroySingleThreadScheduledExecutor() throws InterruptedEx
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值