【发布时间】:2015-05-26 14:05:01
【问题描述】:
我有一个 LIST 包含指向一些 HASH 数据的指针。比如:
[LIST] app:1 ["article1", "article2", "article3" ...]
[HASH] article1 {title: "Hello", description: "World"}
[HASH] article2 {title: "Hello", description: "World"}
[HASH] article3 {title: "Hello", description: "World"}
收到此请求后:
api/v1/app/1/articles/20
我执行以下操作:
$pointers = $this->redis->lrange($appID, 0, $request->articles);
$articles = [];
foreach($pointers as $pointer) {
$articles[] = $this->redis->hgetall($pointer);
}
所以我最终得到:1x lrange 呼叫,然后是 $request->articles 数量的 hgetall 呼叫。请问什么是最快的解决方案?
我想过:
做HMGET
执行 MULTI/EXEC
使用 LUA 编写此功能并在单个命令中获取它们。
有什么想法吗?
【问题讨论】: