Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory 你知道Redis列表中有什么替代方案吗?_Memory_Redis_Queue_Out Of Memory - Fatal编程技术网

Memory 你知道Redis列表中有什么替代方案吗?

Memory 你知道Redis列表中有什么替代方案吗?,memory,redis,queue,out-of-memory,Memory,Redis,Queue,Out Of Memory,我一直使用Redis作为队列在分布式python脚本之间进行通信。在任何时刻,一些节点推送,一些节点从列表中弹出值 然而,我遇到了一个问题。在某一点上,LPUSH将使服务器耗尽内存。据我所知,在2.4版之前一直存在于Redis中的虚拟内存功能被认为是不推荐的,因此建议不要使用 我面临的问题是,丢弃任何密钥的策略都是不可接受的。同样地,服务器配置了noeviction值,这些值不会被逐出,并且应该返回一个错误 我需要的是一种从redis py中找出命令失败的方法,这样我就可以让特定节点等待,直到有

我一直使用Redis作为队列在分布式python脚本之间进行通信。在任何时刻,一些节点推送,一些节点从列表中弹出值

然而,我遇到了一个问题。在某一点上,LPUSH将使服务器耗尽内存。据我所知,在2.4版之前一直存在于Redis中的虚拟内存功能被认为是不推荐的,因此建议不要使用

我面临的问题是,丢弃任何密钥的策略都是不可接受的。同样地,服务器配置了noeviction值,这些值不会被逐出,并且应该返回一个错误

我需要的是一种从redis py中找出命令失败的方法,这样我就可以让特定节点等待,直到有空间将项目推送到列表中。我浏览了代码,redis py本身没有抛出异常,它没有将异常作为设计选择

LPUSH本身返回该特定列表中的记录数,但是,由于该列表是从不同节点访问的,因此该值本身不会告诉我任何信息

有什么办法可以做到这一点吗


请告诉我有关问题性质的任何其他信息是否有助于澄清问题。

是否要检查LPUSH或之前是否会耗尽内存?是否正在弹出该列表?