Redis / Node等待密钥存在

是否有可能等待Redis中存在一个密钥? 有一个引擎运行在处理繁重的后台。 这个想法是让其余的API向Redis发送请求,并从该列表读取引擎。 其余的api会监视一个特定的键,最终将包含发送给客户端的响应。

这可能吗? – 当我做我自己的研究时,我一直在BLPOP上,但是这是一个列表,而不是Redis中的一个特定的键。

有没有更好的方法来做到这一点?

您可以使用Redis Keyspace通知function来实现目标。

有了这个特性,当有人创build/设置一个给定的密钥时,Redis会发布一个消息给特定的频道。 为了等待一个给定的密钥存在,你只需要把这个特定的频道,并等待通知。

// Enable keyspace notification: config set notify-keyspace-events g$K // subscribe the specific channel: __keyspace@<db_num>__:<key_name> subscribe '__keyspace@0__:key' 

当有人设置密钥,你会得到以下通知:

 1) "message" 2) "__keyspace@0__:key" 3) "set"