我使用Spring Boot和Redis。我无法将数据插入Redis
依赖性已添加到pom.xml
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
Exception:
org.springframework.data.redis.RedisConnectionFailureException:无法获取Jedis连接。嵌套的异常是redis.clients.jedis.exceptions.JedisConnectionException:无法从池中获取资源
课程
@配置 公共类SpringRedisConfig扩展了CachingConfigurerSupport {
@Bean
JedisConnectionFactory jedisConnectionFactory() {
return new JedisConnectionFactory();
}
@Bean
public RedisTemplate<String, App> appRedisTemplate() {
RedisTemplate<String, App> template = new RedisTemplate<>();
template.setConnectionFactory(jedisConnectionFactory());
template.setValueSerializer(new GenericToStringSerializer<App>(App.class));
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return template;
}
}
@RestController 公共类AppsController {
@Autowired AppRepository appRepository;
@Autowired AppRedisRepository appRedisRepository;
private String className = this.getClass().getName();
@RequestMapping(value= {"/**/searchapp"}, method=RequestMethod.POST)
public @ResponseBody String doSearchApp(@RequestBody PageParams pageParams,HttpServletRequest request) {
JsonObject js = new JsonObject();
try {
List<App> apps = appRepository.findAllApps();
for(App app: apps) {
appRedisRepository.save(app);
}
js.addProperty("respcode",AppConstants.RESPCODE_SUCCESS);
}catch(Exception ex){
ex.printStackTrace();
js.addProperty("respcode",AppConstants.RESPCODE_EXPERROR);
}
return js.toString();
}
}
@存储库 公共类AppRedisRepositoryImpl实现AppRedisRepository {
private RedisTemplate <String, App> appRedisTemplate;
private HashOperations<String, Long, App> hashOperations;
public AppRedisRepositoryImpl(RedisTemplate<String, App> appRedisTemplate) {
this.appRedisTemplate = appRedisTemplate;
hashOperations = appRedisTemplate.opsForHash();
}
@Override
public void save(App app) {
hashOperations.put("APP", app.getApp_id(),app);
}
@Override
public void update(App app) {
save(app);
}
@Override
public Map<Long, App> findAll() {
return hashOperations.entries("APP");
}
@Override
public App findById(long id) {
return (App)hashOperations.get("APP", id);
}
}
预先感谢