gpt4 book ai didi

javascript - Redis 流式处理 LIST 响应

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

我们希望从 Redis 得到一个响应作为,类似于Postgres Streams .

我们有使用尽可能少的服务器内存的约束。我们的某些列表可能约为 10MB,并且同时多个用户请求。

以老式的方式执行此操作最终导致我们的服务器出现内存问题。

另一种解决方案是迭代列表并发送 lrange 命令,每批返回列表项的一部分,但由于网络往返,这将是低效的。

这是我现在所拥有的,这是做事的标准方式:

'use strict'

const redis = require('redis'),
client = redis.createClient()

client.on('error', function (err) {
console.log('Error ' + err)
})

client.rpush('foo', 1)
client.rpush('foo', 2)
client.rpush('foo', 3)
client.rpush('foo', 4)
client.rpush('foo', 5)

client.lrange('foo', 0, -1, (err, replies) => {
console.log(replies)
})

最佳答案

Streaming 还没有在 Redis 中实现,所以分页是一个很好的方法。也就是说,List 数据结构不能很好地支持该模式,因为 LRANGE 是一项昂贵的 (O(N)) 操作。

我建议您考虑另一种数据结构,例如 Sorted Sets 或 v5 Streams 来存储您的数据。

关于javascript - Redis 流式处理 LIST 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52518182/

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