Попытка запустить некоторые базовые тесты, чтобы убедиться, что я могу правильно читать / писать в Redis локально. Однако, хотя кажется, что код выполняется без проблем, он ничего не пишет.
Конфигурация:
@Configuration
public class RedisConfig {
@Bean
ReactiveRedisOperations<String, Location> redisOperations(ReactiveRedisConnectionFactory factory) {
Jackson2JsonRedisSerializer<Location> serializer = new Jackson2JsonRedisSerializer<>(Location.class);
RedisSerializationContext.RedisSerializationContextBuilder<String, Location> builder =
RedisSerializationContext.newSerializationContext(new StringRedisSerializer());
RedisSerializationContext<String, Location> context = builder.value(serializer).build();
return new ReactiveRedisTemplate<>(factory, context);
}
}
Класс репозитория:
@Repository
public class LocationRedisRepositoryImpl implements LocationRedisRepository {
@Autowired
private ReactiveRedisTemplate<String, String> redisTemplate;
@Autowired
private ReactiveRedisOperations<String, Location> reactiveListOps;
public Mono<Location> getLocationByIpv4(Ipv4Request ipv4Request) {
Location location = new Location("192", "193", "j", "j", "l", 5.0, 6.0, 7.0);
reactiveListOps.opsForList().leftPush("testk", location);
return Mono.just(location);
}
public Mono<Void> writeLocation() {
return Mono.empty();
}
}
Теперь, когда я вызываю метод getLocationByIpv4
через вызов API, я не получаю статически определенное местоположение без проблем:
И никаких ошибок нетподнял. Но когда я проверяю Redis для этой пары ключ / значение, он не существует. Я также проверил это в коде, вернув вместо него return reactiveListOps.opsForList().leftPop("testk");
, и я получил пустой ответ. В чем дело?