gpt4 book ai didi

python - Redis 阻塞直到键存在

转载 作者:IT王子 更新时间:2023-10-29 06:03:21 26 4
gpt4 key购买 nike

我是 Redis 的新手,想知道是否有一种方法可以await get通过它的键值直到键值存在。最少的代码:

async def handler():
data = await self._fetch(key)

async def _fetch(key):
return self.redis_connection.get(key)

如您所知,如果这样的key不存在,它返回None。但是由于在我的项目中,seting key value pair to redis 发生在另一个应用程序中,我希望 redis_connection get 方法阻塞直到键存在。这样的期望是否有效?

最佳答案

如果不在您的客户端上实现某种轮询 redis GET,就不可能完成您想要做的事情。在那种情况下,您的客户将不得不做类似的事情:

async def _fetch(key):
val = self.redis_connection.get(key)
while val is None:
# Sleep and retry here
asyncio.sleep(1)
val = self.redis_connection.get(key)
return val

但是我会要求您完全重新考虑您用于解决此问题的模式。在我看来,你需要它来做一些像 Pub/Sub https://redis.io/topics/pubsub 这样的事情。 .

因此,执行SET 的应用成为发布者,而执行GET 并等待 key 可用的应用成为订阅者。

我对此做了一些研究,看起来你可以用 asyncio_redis 做到这一点:

希望这对您有所帮助。

关于python - Redis 阻塞直到键存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42597328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com