redis过期key删除

LZ一开始配置到启动类里面,结果出现了主线程阻塞的情况。

如下是流程:

首先修改配置文件redis.conf中的:notify-keyspace-events Ex,默认为notify-keyspace-events "" (注释掉默认的,注意notify-keyspace-events Ex之前不能有空格)

启动初始化类里面的contextInitialized方法中加入以下代码:(启动一个线程执行订阅功能)

Thread thread = new Thread(传入需要参数--既然是redis监控必然需要jedis参数);
thread.start();

之后再编写业务代码

resource.psubscribe(pubSub, "__keyevent@0__:expired");

这里是订阅监听,__keyevent@0__:expired是监听的频道

redis监听类

public class Listener extends JedisPubSub{
private static Logger logger = Logger.getLogger(Listener.class);

private XXX xxx;
private YYY yyy;

public Listener(XXX xxx, YYY yyy) {
this.xxx= xxx;
this.yyy= yyy;
}

@Override
public void onPMessage(String pattern, String channel, String message) {
logger.info("onPMessage: channel[" + channel + "], message[" + message + "]");
{业务内容}
}

@Override
public void onMessage(String channel, String message) {
logger.info("onMessage: channel[" + channel + "], message[" + message + "]");
}

@Override
public void onSubscribe(String channel, int subscribedChannels) {
logger.info("onSubscribe: channel[" + channel + "]," + "subscribedChannels[" + subscribedChannels + "]");
}

@Override
public void onUnsubscribe(String channel, int subscribedChannels) {
logger.info("onUnsubscribe: channel[" + channel + "], " + "subscribedChannels[" + subscribedChannels + "]");
}

@Override
public void onPUnsubscribe(String pattern, int subscribedChannels) {
logger.info("onPUnsubscribe: pattern[" + pattern + "]," + "subscribedChannels[" + subscribedChannels + "]");
}

@Override
public void onPSubscribe(String pattern, int subscribedChannels) {
logger.info("onPSubscribe: pattern[" + pattern + "], " + "subscribedChannels[" + subscribedChannels + "]");
}
}

 

转载于:https://www.cnblogs.com/autumn007/p/10489776.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值