redis 中的key值过时后,触发通知事件

一、建立springboot工程,建立监听类web

 

maven配置redis

复制代码
<dependencies>
        <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
        <version>1.5.10.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>1.5.10.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>1.5.10.RELEASE</version>
            <scope>test</scope>
        </dependency>
    </dependencies>             
复制代码

 

建立两个类spring

RedisKeyExpirationListener
复制代码
@Component
public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {

    public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
        super(listenerContainer);
    }

    /**
     * 针对redis数据失效事件,进行数据处理
     * @param message
     * @param pattern
     */
    @Override
    public void onMessage(Message message, byte[] pattern) {
        // 用户作本身的业务处理便可,注意message.toString()能够获取失效的key
        String expiredKey = message.toString();
        System.out.println(expiredKey);
    }
}
复制代码

 

RedisListenerConfig
复制代码
@Configuration
public class RedisListenerConfig {
    @Bean
    RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {

        RedisMessageListenerContainer container = new RedisMessageListenerContainer();
        container.setConnectionFactory(connectionFactory);
        return container;
    }
}
复制代码

 

 

二、redis配置windows

 使用默认配置,localhost:6379 不设置密码 springboot

而后在此基础上把notify-keyspace-events Ex 这一行的注释打开maven

 

启动工程 redis-server.exe redis.windows.conf ide

 

三、测试spring-boot

 

执行命令 set a 1 ex 2测试

两秒后触发回调spa

 

 

 

相关文章
相关标签/搜索