springMVC配置redis监听

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版权协议,转载请附上原文出处链接和本声明。