1.hash类型数字增长ERR hash value is not an integer
这是数据转换出错,
自定义配置redis序列化器
@Configuration
public class RedisConfig {
/**
* 默认redisTemplate 序列化使用的jdkSerializeable, 存储二进制字节码,
* 使用所以自定义序列化类 将key和val设置为string
*
* @param redisConnectionFactory
* @return
*/
@Bean
public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
redisTemplate.setKeySerializer(RedisSerializer.string());
redisTemplate.setValueSerializer(RedisSerializer.string());
redisTemplate.setHashKeySerializer(RedisSerializer.string());
redisTemplate.setHashValueSerializer(RedisSerializer.string());
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
首次使用string存储 后续long类型
if (hasKey(RedisConstants.PERSONSTATISTICS, RedisConstants.EXIST)) {
hasIncrement(RedisConstants.PERSONSTATISTICS, RedisConstants.EXIST, 1L);
} else {
hset(RedisConstants.PERSONSTATISTICS, RedisConstants.EXIST, "1");
}
2.redis发送消息
redisTemplate.convertAndSend(channel, message);