异步调用以从 redis 缓存读取,以减少响应时间


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(( 方法也在增加等待异步任务完成的时间

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

您可以在 Redis 之前添加更近的(本地(异步缓存层,以减少进入 Redis 的读取操作次数。在 NodeJs 中,我观察到这样做的吞吐量提高了 50%-100%。不同的PC设置将具有不同的加速。但是连接 Redis 服务器的延迟必须始终高于从 RAM 获取值,对吧?

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

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

最新更新