【问题标题】:Async calls to read from redis cache in order to reduce the response time异步调用从 redis 缓存中读取以减少响应时间
【发布时间】:2020-05-16 09:38:30
【问题描述】:
Given list of employees  
List<<EMPLOYEE>EMPLOYEE> empList;

POJO class:
Employee{
int id;
String name;
String address;
}

输入: empID 作为 redis 缓存的键

Redis 缓存示例 JSON 数据:

(键)->(值)

1 -> {名称:xyz,地址:美国}
2 -> {名称:ABC,地址:欧洲}

要求:遍历员工列表,并通过异步缓存调用为每个 empID 获取员工详细信息。

所有异步调用完成后。发送所有员工的名单及其所有详细信息。

CompletableFuture.supplyAsync() 执行任务,但 completableFuture 的 get() 方法等待每个 Async 调用完成。从而增加响应时间。

甚至 allOf() 和 join() 方法都在增加等待异步任务完成的时间

有什么减少缓存响应时间的建议吗?

【问题讨论】:

    标签: spring asynchronous executorservice completable-future redis-cache


    【解决方案1】:

    您可以在 Redis 之前添加更接近(本地)的异步缓存层,以减少进入 Redis 的读取操作数。在 NodeJs 中,通过这样做,我观察到吞吐量提高了 50%-100%。不同的电脑设置会有不同的加速。但是连接 Redis 服务器的延迟肯定比从 RAM 中获取值要高,对吧?

    https://redis.io/topics/client-side-caching

    寻找跟踪和广播选项。即使没有它们,您仍然可以使用来自 github 的异步 lru 缓存实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      • 1970-01-01
      • 2020-06-07
      • 2018-02-11
      相关资源
      最近更新 更多