Java 弹簧靴反应式redis连接

Java 弹簧靴反应式redis连接,java,spring-boot,redis,reactive,rsocket,Java,Spring Boot,Redis,Reactive,Rsocket,我是redis反应式实现的新手。我正在尝试在本地主机6379(默认位置)上设置一个使用redis的后端。现在声明“如果想要连接到本地主机6379上的Redis服务器,我们不需要添加任何配置代码。” 于是我像往常一样开始了我的redis: 提出了一个简单的发帖请求 { "uid":"123", "message":"hello world" } 连接到此控制器 @PostMapping("

我是redis反应式实现的新手。我正在尝试在本地主机6379(默认位置)上设置一个使用redis的后端。现在声明“如果想要连接到本地主机6379上的Redis服务器,我们不需要添加任何配置代码。”

于是我像往常一样开始了我的redis:

提出了一个简单的发帖请求

{
    "uid":"123",
    "message":"hello world"
}
连接到此控制器

@PostMapping("/api/v1/space/post/")
@ResponseBody
public ResponseEntity<String> postMessage(@RequestBody Message message) throws Exception {
    if(messageService.postMessage(message.getUid(), message.getMessage())){
        return ResponseEntity.ok("it works!");
    } else{
        return ResponseEntity.badRequest().body("something's wrong");
    }
    
}
但是运气不好,我猜spring boot以某种方式连接到了一个嵌入式redis,这不是我想要的,那么如何连接到redis实例呢

编辑

这是消息repo&service repo返回MonoIgnorePublisher,在文档中,Mono返回元素或错误,这是错误吗

回购:

以下是反应器操作配置:

@Bean
public ReactiveRedisOperations<String, Message> redisOperations(ReactiveRedisConnectionFactory factory) {
    Jackson2JsonRedisSerializer<Message> serializer = new Jackson2JsonRedisSerializer<>(Message.class);

    RedisSerializationContext.RedisSerializationContextBuilder<String, Message> builder = RedisSerializationContext
            .newSerializationContext(new StringRedisSerializer());

    RedisSerializationContext<String, Message> context = builder.value(serializer)
            .hashKey(new StringRedisSerializer()).hashValue(serializer).build();

    return new ReactiveRedisTemplate<>(factory, context);
}
@Bean
公共反应器操作再操作(反应器连接工厂){
Jackson2JsonRedisSerializer serializer=新的Jackson2JsonRedisSerializer(Message.class);
RedisSerializationContext.RedisSerializationContextBuilder生成器=RedisSerializationContext
.newSerializationContext(新的StringRedisSerializer());
重新序列化上下文上下文=builder.value(序列化程序)
.hashKey(新的StringRedisSerializer()).hashValue(serializer).build();
返回新的ReactiveRedisTemplate(工厂、上下文);
}

没有提到任何嵌入式redis实例。
messageService
看起来像什么?错误可能在那里,您的编写没有成功。@Kayaman嗨,谢谢您的输入,我已经编辑了我的问题,我确实认为这是由于回购协议,但我不知道它是什么。没有提到任何嵌入式redis实例。
messageService
看起来像什么?错误可能在那里,你的写作没有成功。@Kayaman嗨,谢谢你的输入,我已经编辑了我的问题,我确实认为这是由于回购协议,我不知道它是什么。
private final ReactiveRedisOperations<String, Message> redisTemplate;

    public MessageRepository(ReactiveRedisOperations<String, Message> redisOperations) {
        this.redisTemplate = redisOperations;
    }

    public Mono<Void> save(String authorId, String msg) {
        Message message = new Message(authorId, msg);
        Mono<Void> res = Mono.when(redisTemplate.<String, Message>opsForHash().put("space", message.getId(), message), 
        redisTemplate.opsForZSet().add(message.getUid(), message, message.getTimestamp().toEpochDay())).then();
        System.out.println(res.toString());
        return res;
    }
    @Autowired
    private MessageRepository repo;
public Boolean postMessage(String authorId, String msg) throws Exception {
        try{
            repo.save(authorId, msg);
        }
        catch (Exception e){
            throw new Exception(e);
        }
        return true;       
    }
@Bean
public ReactiveRedisOperations<String, Message> redisOperations(ReactiveRedisConnectionFactory factory) {
    Jackson2JsonRedisSerializer<Message> serializer = new Jackson2JsonRedisSerializer<>(Message.class);

    RedisSerializationContext.RedisSerializationContextBuilder<String, Message> builder = RedisSerializationContext
            .newSerializationContext(new StringRedisSerializer());

    RedisSerializationContext<String, Message> context = builder.value(serializer)
            .hashKey(new StringRedisSerializer()).hashValue(serializer).build();

    return new ReactiveRedisTemplate<>(factory, context);
}