1、首先启用redis通知功能(ubuntu下操作):
编辑/etc/redis/redis.conf文件,添加或启用以下内容(过期通知):
notify-keyspace-events Ex
或者登陆redis-cli之后,输入以下命令:
config set notify-keyspace-events Ex
2、Java Spring中配置监听
接口类:
importjava.io.Serializable;importjava.util.Map;public interfaceIMessageDelegate {voidhandleMessage(String message);voidhandleMessage(Map message);void handleMessage(byte[] message);voidhandleMessage(Serializable message);voidhandleMessage(Serializable message, String channel);
}
实现类:
importorg.apache.logging.log4j.LogManager;importorg.apache.logging.log4j.Logger;importorg.springframework.stereotype.Service;importrhxtune.smarthome.api.interfaces.IMessageDelegate;importjava.io.Serializable;importjava.util.Map;
@Servicepublic class DefaultMessageDelegate implementsIMessageDelegate {public static Logger logger = LogManager.getLogger(DefaultMessageDelegate.class.getName());
@Overridepublic voidhandleMessage(String message) {
logger.info("handleMessage1:" +message);
}
@Overridepublic voidhandleMessage(Map message) {
logger.info("handleMessage2:" +message);
}
@Overridepublic void handleMessage(byte[] message) {
logger.info("handleMessage3:" +message);
}
@Overridepublic voidhandleMessage(Serializable message) {
logger.info("handleMessage4:" +message);
}
@Overridepublic voidhandleMessage(Serializable message, String channel) {
logger.info("handleMessage5:" + message +channel);
}
}
spring-redis.xml中配置:
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" destroy-method="destroy">
class="org.springframework.data.redis.listener.adapter.MessageListenerAdapter">
原文:http://www.cnblogs.com/zhangpengshou/p/6248032.html