application.properties
spring.redis.host=172.16.2.134 spring.redis.port=6379 spring.redis.password=123456 spring.redis.database=1用于数据序列化
@Data @AllArgsConstructor public class Student implements Serializable { private String name; private Integer age; }存在的问题是进行删除时可能会因为key的序列化机制不一样,造成删除失败 解决办法是始终使用同一个 redisTemplate对象,或者不进行key的序列化设置
RedisConfig配置类
@Configuration public class RedisConfig { @Bean public RedisTemplate myRedisTemplate(RedisConnectionFactory jedisConnectionFactory){ RedisTemplate redisTemplate = new RedisTemplate(); redisTemplate.setConnectionFactory(jedisConnectionFactory); redisTemplate.setKeySerializer(new StringRedisSerializer()); //设置的是key redisTemplate.setHashKeySerializer(new StringRedisSerializer()); //设置的是hash中字段 redisTemplate.setHashValueSerializer(new StringRedisSerializer()); //设置的是hash中的value return redisTemplate; } }DemoApplication主配置类,共存
@SpringBootApplication public class DemoApplication { @Autowired private RedisTemplate redisTemplate; //注入自定义的redisTemplate @Autowired private RedisTemplate myRedisTemplate; public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } //在程序启动后自动运行这段程序 @Bean CommandLineRunner commandLineRunner(){ //java8Stream新特性 return (args ->{ redisTemplate.setKeySerializer(new StringRedisSerializer()); ListOperations listOperations = redisTemplate.opsForList(); redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer(Student.class)); listOperations.leftPush("student.1",new Student("张三",30)); } ); } }共存插入结果:
换myRedisTemplate
@SpringBootApplication public class DemoApplication { @Autowired private RedisTemplate redisTemplate; //注入自定义的redisTemplate @Autowired private RedisTemplate myRedisTemplate; public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } //在程序启动后自动运行这段程序 @Bean CommandLineRunner commandLineRunner(){ //java8Stream新特性 return (args ->{ ListOperations listOperations = myRedisTemplate.opsForList(); myRedisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer(Student.class)); listOperations.leftPush("student.1",new Student("张三",30)); } ); } }显示结果:
