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"