昨天在开发过程中尝试使用redis的list结合xxljob来进行削峰填谷,
xxljob每1s调度一次方法,方法逻辑为redistemplate.leftPop()数据进行处理,这样每天的数据处理量大概为60 * 60 * 24,足够满足我的需求
一般我的redistemplate都是长这个样子的
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
//创建一个json的序列化对象
GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
//设置value的序列化方式json
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
//设置key序列化方式string
redisTemplate.setKeySerializer(new StringRedisSerializer());
//设置hash key序列化方式string
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
//设置hash value的序列化方式json
redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
当我使用redisTemplate.leftPush()数据的时候,再通过RDM查看的时候变成这个样子了,带有两个引号。
再后来我改用springboot自动注入的redis实例操作就可以了,就是换了string的序列化方式
@Autowired
private StringRedisTemplate redisTemplate;
当然不管哪种方式,你使用的时候都是一样的,不受影响,但如果你需要调试一些bug,需要通过可视化工具增加或者删除一些脏数据,可能就会遇到麻烦了,大家一定要从这些细节去提高自己的开发效率。