报错信息显示找不到某个目录下的某个文件了,别急,认真看报错信息。我的报错信息提示我reids里存储的路径找不到,原因是我的文件路径被我修改了,所以redis之前保存进去的信息未更新生成新的路径信息,解决方法有两个。
第一个直接使用redis命令或图形化管理界面进行修改。
-- 启动redis
redis-server
-- 启动服务器
redis-cli --raw
-- 例子1:选择编号为1的数据库
select 1
--添加键user1值aaa
set user1 aaa
-- 修改值
set user1 bbb
-- 追加值
append user1 hahha
第二个更简单,直接清空redis报错数据所在的数据库,使用图形化管理工具Flush Database直接清空。清空后在重新运行项目,重新生成redis数据
-- 选择数据库
SELECT 3
-- 清空所选的数据库信息(一个数据库)
FLUSHDB
-- 清空所有数据库数据(所有数据库)
flushall
当然,也有些是代码问题,这里是我的redis配置文件
@Configuration
@EnableCaching
public class RedisConfig {
/**
* RedisTemplate
*/
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
template.setConnectionFactory(factory);
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
ObjectMapper om = new ObjectMapper();
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(om);
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
// key采用String的序列化方式
template.setKeySerializer(stringRedisSerializer);
// hash的key也采用String的序列化方式
template.setHashKeySerializer(stringRedisSerializer);
// value序列化方式采用jackson
template.setValueSerializer(jackson2JsonRedisSerializer);
// hash的value序列化方式采用jackson
template.setHashValueSerializer(jackson2JsonRedisSerializer);
template.afterPropertiesSet();
return template;
}
}