以`REDISJSON`格式React性写入redis

kdfy810k  于 2022-10-08  发布在  Redis
关注(0)|答案(1)|浏览(135)

bounty 4天后到期。这个问题的答案有资格获得+50的声誉奖励。2shar希望引起更多的关注这个问题。

我正在使用带有lettuce驱动程序的Reactive RedisOperations来写给Redis。

@Autowired
ReactiveRedisOperations<String, Foo> redisOperation;

public Mono<Boolean> save(Foo foo) {
    redisOperation.map(operation -> 
     operation
     .opsForValue()
     .set(foo.getId(), foo);

    return Mono.just(true);
}

序列化定义为

private <T> ReactiveRedisOperations<String, T> buildRedisOperations(ReactiveRedisConnectionFactory factory, Class<T> clazz) {
        RedisSerializationContext.RedisSerializationContextBuilder<String, T> builder = RedisSerializationContext
                .newSerializationContext(new StringRedisSerializer());
        Jackson2JsonRedisSerializer<T> serializer = new Jackson2JsonRedisSerializer<>(clazz);
        RedisSerializationContext<String, T> context = builder.value(serializer).build();
        return new ReactiveRedisTemplate<>(factory, context);
    }

但是,将Foo对象的数据类型另存为String。我想以Redisjson数据类型保存foo对象。

如何使用React式写入redis并保存为REDISJSON格式?

PS:我不想使用lua script解决方案来解决这个问题。

w46czmvw

w46czmvw1#

查看**Redis OM Spring**。在同一个repo中有示例实现和文档。

我不确定被动实施会是什么样子。但以下可能是许多非React性方法之一。

@Autowired
FooRepository fooRepo;

public void save(Foo foo) {
    fooRepo.save(foo);
}

相关问题