gpt4 book ai didi

Redis block 推送直到列表有空位

转载 作者:可可西里 更新时间:2023-11-01 11:25:02 25 4
gpt4 key购买 nike

我正在寻找类似于 BLPUSH 命令的东西,它会阻塞直到列表的长度低于指定的 max_size。目的是防止生产者运行速度快于消费者时列表无限增长。

功能与 python 的 Queue.put() 非常相似.

请注意 this accepted answer不起作用,因为 (1) 代码立即返回,根本没有阻塞。(2)如果我在Lua中写一个自旋锁,它会卡住Redis。

有没有办法在 Lua 中实现 BLPUSH,还是必须在 C 中实现?

最佳答案

TLDR 它必须是 C 语言,或任何其他具有 C 绑定(bind)的语言。

Lua 是一种组合逻辑和现有 Redis 命令的方法。由于 Redis(大部分)是单线程的,Lua 运行时引擎会全神贯注地运行脚本并阻塞服务器。

从 Redis v4 开始,模块允许任何人(具有所需的开发技能)使用(几乎)任何东西扩展 Redis,包括 blocking operations .

关于Redis block 推送直到列表有空位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47152699/

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