@Override public Flux<CommandResponse<GeoDistCommand, Distance>> geoDist(Publisher<GeoDistCommand> commands) { return connection.execute(cmd -> Flux.from(commands).concatMap(command -> { Assert.notNull(command.getKey(), "Key must not be null!"); Assert.notNull(command.getFrom(), "From member must not be null!"); Assert.notNull(command.getTo(), "To member must not be null!"); Metric metric = command.getMetric().isPresent() ? command.getMetric().get() : RedisGeoCommands.DistanceUnit.METERS; GeoArgs.Unit geoUnit = LettuceConverters.toGeoArgsUnit(metric); Converter<Double, Distance> distanceConverter = LettuceConverters.distanceConverterForMetric(metric); Mono<Distance> result = cmd.geodist(command.getKey(), command.getFrom(), command.getTo(), geoUnit) .map(distanceConverter::convert); return result.map(value -> new CommandResponse<>(command, value)); })); }
@Override public Distance geoDist(byte[] key, byte[] member1, byte[] member2, Metric metric) { Assert.notNull(key, "Key must not be null!"); Assert.notNull(member1, "Member1 must not be null!"); Assert.notNull(member2, "Member2 must not be null!"); Assert.notNull(metric, "Metric must not be null!"); GeoArgs.Unit geoUnit = LettuceConverters.toGeoArgsUnit(metric); Converter<Double, Distance> distanceConverter = LettuceConverters.distanceConverterForMetric(metric); try { if (isPipelined()) { pipeline(connection.newLettuceResult(getAsyncConnection().geodist(key, member1, member2, geoUnit), distanceConverter)); return null; } if (isQueueing()) { transaction(connection.newLettuceResult(getAsyncConnection().geodist(key, member1, member2, geoUnit), distanceConverter)); return null; } return distanceConverter.convert(getConnection().geodist(key, member1, member2, geoUnit)); } catch (Exception ex) { throw convertLettuceAccessException(ex); } }
@Override public Flux<CommandResponse<GeoDistCommand, Distance>> geoDist(Publisher<GeoDistCommand> commands) { return connection.execute(cmd -> Flux.from(commands).concatMap(command -> { Assert.notNull(command.getKey(), "Key must not be null!"); Assert.notNull(command.getFrom(), "From member must not be null!"); Assert.notNull(command.getTo(), "To member must not be null!"); Metric metric = command.getMetric().isPresent() ? command.getMetric().get() : RedisGeoCommands.DistanceUnit.METERS; GeoArgs.Unit geoUnit = LettuceConverters.toGeoArgsUnit(metric); Converter<Double, Distance> distanceConverter = LettuceConverters.distanceConverterForMetric(metric); Mono<Distance> result = cmd.geodist(command.getKey(), command.getFrom(), command.getTo(), geoUnit) .map(distanceConverter::convert); return result.map(value -> new CommandResponse<>(command, value)); })); }
@Override public Flux<CommandResponse<GeoDistCommand, Distance>> geoDist(Publisher<GeoDistCommand> commands) { return connection.execute(cmd -> Flux.from(commands).concatMap(command -> { Assert.notNull(command.getKey(), "Key must not be null!"); Assert.notNull(command.getFrom(), "From member must not be null!"); Assert.notNull(command.getTo(), "To member must not be null!"); Metric metric = command.getMetric().isPresent() ? command.getMetric().get() : RedisGeoCommands.DistanceUnit.METERS; GeoArgs.Unit geoUnit = LettuceConverters.toGeoArgsUnit(metric); Converter<Double, Distance> distanceConverter = LettuceConverters.distanceConverterForMetric(metric); Mono<Distance> result = cmd.geodist(command.getKey(), command.getFrom(), command.getTo(), geoUnit) .map(distanceConverter::convert); return result.map(value -> new CommandResponse<>(command, value)); })); }
@Override public Distance geoDist(byte[] key, byte[] member1, byte[] member2, Metric metric) { Assert.notNull(key, "Key must not be null!"); Assert.notNull(member1, "Member1 must not be null!"); Assert.notNull(member2, "Member2 must not be null!"); Assert.notNull(metric, "Metric must not be null!"); GeoArgs.Unit geoUnit = LettuceConverters.toGeoArgsUnit(metric); Converter<Double, Distance> distanceConverter = LettuceConverters.distanceConverterForMetric(metric); try { if (isPipelined()) { pipeline(connection.newLettuceResult(getAsyncConnection().geodist(key, member1, member2, geoUnit), distanceConverter)); return null; } if (isQueueing()) { transaction(connection.newLettuceResult(getAsyncConnection().geodist(key, member1, member2, geoUnit), distanceConverter)); return null; } return distanceConverter.convert(getConnection().geodist(key, member1, member2, geoUnit)); } catch (Exception ex) { throw convertLettuceAccessException(ex); } }
@Override public Distance geoDist(byte[] key, byte[] member1, byte[] member2, Metric metric) { Assert.notNull(key, "Key must not be null!"); Assert.notNull(member1, "Member1 must not be null!"); Assert.notNull(member2, "Member2 must not be null!"); Assert.notNull(metric, "Metric must not be null!"); GeoArgs.Unit geoUnit = LettuceConverters.toGeoArgsUnit(metric); Converter<Double, Distance> distanceConverter = LettuceConverters.distanceConverterForMetric(metric); try { if (isPipelined()) { pipeline(connection.newLettuceResult(getAsyncConnection().geodist(key, member1, member2, geoUnit), distanceConverter)); return null; } if (isQueueing()) { transaction(connection.newLettuceResult(getAsyncConnection().geodist(key, member1, member2, geoUnit), distanceConverter)); return null; } return distanceConverter.convert(getConnection().geodist(key, member1, member2, geoUnit)); } catch (Exception ex) { throw convertLettuceAccessException(ex); } }