1、pom文件配置
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.6.0.RELEASE</version>
</dependency>2、配置springMVC文件
<bean id="jedisConnFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" destroy-method="destroy">
<property name="hostName" value="127.0.0.1" />
<property name="port" value="6379" />
<property name="timeout" value="${redis.timeout}" />
<property name="database" value="${redis.database}" />
<property name="password" value="${redis.password}" />
<property name="usePool" value="true" />
<property name="poolConfig" ref="jedisPoolConfig" />
</bean>
<bean id="messageListener" class="org.springframework.data.redis.listener.adapter.MessageListenerAdapter">
<constructor-arg>
<bean class="com.jeeplus.modules.api.RedisKeyExpiredMessageDelegate" />
</constructor-arg>
</bean>
<bean id="redisContainer" class="org.springframework.data.redis.listener.RedisMessageListenerContainer">
<property name="connectionFactory" ref="jedisConnFactory" />
<property name="messageListeners">
<map>
<entry key-ref="messageListener">
<list>
<bean class="org.springframework.data.redis.listener.ChannelTopic">
<constructor-arg value="__keyevent@1__:expired" />
</bean>
<bean class="org.springframework.data.redis.listener.PatternTopic">
<constructor-arg value="'__key*__:*" />
</bean>
</list>
</entry>
</map>
</property>
</bean>3、新建redis监听类
package com.jeeplus.modules.api;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.connection.MessageListener;
import org.springframework.stereotype.Service;
/**
* Redis过期通知监听
*
* @author mall
*
*/
@Service
public class RedisKeyExpiredMessageDelegate implements MessageListener {
public static Logger logger = LoggerFactory.getLogger(RedisKeyExpiredMessageDelegate.class);
@Override
public void onMessage(Message message, byte[] pattern) {
String messageBody = new String(message.getBody());
logger.info("channel:" + new String(message.getChannel()) + ",message:" + messageBody);
/*if (messageBody.startsWith("bidding")) {
String bsid = messageBody.split(":")[2];
biddingSessionsService.endBidding(bsid);
}*/
}
}
版权声明:本文为nezhaxiaopengyou原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。