【发布时间】:2017-08-28 07:44:44
【问题描述】:
如果我在 redis 中监听事件,就像下面的命令,
$ redis-cli --csv psubscribe '__key*__:*'
Reading messages... (press Ctrl-C to quit)
我可以得到类似的东西
"pmessage","__key*__:*","__keyspace@0__:exipre","xxx"
"pmessage","__key*__:*","__keyevent@0__:expired","xxx"
那么,当我在redis中使用spring-data-redis监听事件时,如何获取具体的事件名称(如keyspace@0:expire),这样不仅可以获取key像“xxx”这样的值,但也得到像expire或expired这样的事件,因为我不想分别构建两个主题监听器,如下所示:
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
//one for expire
container.addMessageListener(listenerAdapter1, new PatternTopic(//topic 1));
//another for expired
container.addMessageListener(listenerAdapter2, new PatternTopic(//topic 2));
【问题讨论】:
标签: redis event-handling spring-data-redis