DataHelper.java
package com.phoenix.db; import com.phoenix.core.db.dao.Dao; import com.phoenix.core.db.impl.CacheService; import com.phoenix.core.tools.Tools; import com.phoenix.socket.DBServer; import org.slf4j.Logger; import redis.clients.jedis.Jedis; /** * 数据操作 * Created by Lovell on 7/5/16. */ public class DataHelper extends Dao { private static Logger logger = Tools.getLogger(DBServer.Log_FileName, DBServer.class); private static DataHelper dataHelper; public static DataHelper getInstance() { if (dataHelper == null) { dataHelper = new DataHelper(); } return dataHelper; } /** * 监听 redis 事件 */ public void startListenRedisEvent(){ // 由于监听会阻塞线程,所以使用线程来监听 (new Thread() { public void run() { // 获得一个 redis 链接 Jedis jedis = CacheService.getInstance().getJedis(); RedisEventListener listener = new RedisEventListener(); logger.info("开始监听Redis事件......"); jedis.psubscribe(listener, "__keyevent@0__:expired"); } }).start(); } }
RedisEventListener.java
package com.phoenix.db; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import redis.clients.jedis.JedisPubSub; /** * Redis时间监听类 */ public class RedisEventListener extends JedisPubSub { private static Logger logger = LoggerFactory.getLogger(RedisEventListener.class); // 取得订阅的消息后的处理 public void onMessage(String channel, String message) { //System.out.println(channel + "=" + message); logger.info("收到redis事件onMessage:{} = {}", channel, message); } // 取得按表达式的方式订阅的消息后的处理 public void onPMessage(String pattern, String channel, String message) { //System.out.println(pattern + "=" + channel + "=" + message); logger.info("收到redis事件onPMessage:{} = {} = {}", pattern, channel, message); } }