由于redis是单线程的,如何将这些调用包装在Future中?

时间:2016-09-28 15:44:34

标签: scala redis

由于redis是单线程的,因此调用类似下面的调用将会阻塞,直到它返回:

redis.hgetall("some_key")

现在说我要把所有的电话都包裹在Futures中,例如,如果我必须同时拨打100K这些类型的电话:

Future.sequence(redis_calls)

在这方面做这样的事情有帮助吗?或者是故障跟踪还是如果呼叫得到备份可能会导致问题?

1 个答案:

答案 0 :(得分:1)

你会发现最慢的部分是向Redis发送命令并再次读取结果,而不是等待Redis执行请求。

为避免这种情况,您可以使用pipelines一次发送一堆命令并将结果重新接收。