【发布时间】:2015-05-07 09:31:04
【问题描述】:
我使用redis写了一个非常简单的队列,但是我觉得我的实现很糟糕,所以我想请求一个更好的解决方案。下面是我的问题的简单流程图。
- 某些程序将数据推送到 redis 列表中
- 一个php程序永远循环,检查列表是否为空,如果不为空则将列表中的节点弹出到MySQL中。
第 1 步很好,但是我在第 2 步中使用了while (true),这会导致大量 CPU 浪费。有什么好办法可以在list不为空的情况下进行pop操作?
【问题讨论】:
-
while(true)真的会造成 CPU 浪费吗? cpu浪费是什么意思? -
您可以将 sleep() 添加到循环中
-
当永远循环时,cpu 使用率会非常高,sleep() 是一个解决方案,但是任何更聪明的方法可以检测列表是否为空?