当前位置: 首页 > 知识库问答 >
问题:

如何缓存Mono对象

阮星火
2023-03-14

我有以下代码:

final T savedEntity = repository.save(entity);
entityCacheService.putIntoCache(entity.getId(), savedEntity);

现在我使我的存储库成为反应性的。我的问题是如何使缓存存储现在单声道和通量。

final Mono<T> savedEntity = repository.save(entity);
entityCacheService.putIntoCache(entity.getId(), <<What here>>);

我遇到了以下Mono和Flux缓存,但这只是为了查找,因为我也是反应式编程的初学者。

共有1个答案

隗俊誉
2023-03-14

在您的情况下,最好的方法是依靠保存操作返回Mono这一事实

因此,您可以使用doOnNext将该实体保存在DB中时也将其放入缓存中:

final Mono<T> savedEntity = repository.save(entity)
    .doOnNext(entity -> entityCacheService.putIntoCache(entity.getId(), entity);

结果是单声道

 类似资料:
  • 在我的客户端webapp中使用Apache HttpClient4.5.x,它连接到(并登录到)另一个(例如主)服务器webapp。 这两个webapp之间的关系是多对多的--这意味着对于客户端webapp中的某个用户的请求,它必须以另一个用户的身份登录+在服务器webapp中进行rest调用。所以我们需要对饼干进行一些分离,这是不可能的(是吗?)要在创建httpclient实例之后获取/设置co

  • 有时缓存代码中的单个对象会很有用,比如有些需要很大开销获取的数据或者一些结果集不怎么变化的数据库查询。你可以使用一些缓存软件将这些数据存放在内存中以便下次高速获取。如果你获得数据后把他们存起来,下次请求直接从缓存里面获取数据,在减少数据库负载的同时能极大提高性能。 许多流行的字节码缓存方案也能缓存定制化的数据,所以更有理由好好使用它们了。APCu、XCache 以及 WinCache 都提供了 A

  • 好吧,所以我有下面的方法,但我试图摆脱使用。块(),因此尝试实现Mono,但得到错误< code >所需的类型:List 原始代码 我尝试以非阻塞方式重构使用 Mono

  • 我有一个类/方法,每秒生成。 我需要: 如何使用Flux实现这一点?

  • 问题内容: 寻找一个适用于Android(SDK 7+)类的简单开源非copyleft缓存。 目的主要是异步存储所获取的s(因此,我不需要将此功能包含在缓存类中)。 我为此目的使用了weakList,这自然是一个糟糕的解决方案,使用Guava缓存会更好一些,但仍然不够好。 最好是,缓存能够存储任何可序列化的对象,而不仅仅是a ,并且当对象添加到缓存中时,我可以轻松清除对象中使用的某些标记。 最好的

  • 我有一节这样的课 并从外部API向webclient获取数据 我想把数据转换成下面这样。 这是我的尝试 我的方法似乎是同步的。