整体思路
先通过pom引入redis,在properties或yml中添加redis配置,初步整合到Springboot中。然后实现RedisConfig。通过实现KeyExpirationEventMessageListener可以在过期或者时间发布的时候进行其他操作。先整体给大家看一下,如下图1所示。
具体实现
1.pom和properties就省略了。根据自己情况配置!
2.实现RedisConfig实现
- 继承CachingConfigurerSupport
- 引入连接工厂
- 定义RedisTemplate和StringRedisTemplate。这个只是操作redis的使用,跟事件监听无关
- 另外我还实现了下key的生成策略以及错误处理,有兴趣的可以看看
最重要的两个Bean,分别是RedisMessageListenerContainer和KeyExpirationListener。一个是redis监听容器的实现,另一个监听器!
下面展示 RedisConfig
的具体代码。
package com.dlnu.byname.common.redis;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.interceptor.CacheErrorHandler;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer