代码之家  ›  专栏  ›  技术社区  ›  nicholaswmin

Redis流列表响应

  •  0
  • nicholaswmin  · 技术社区  · 6 年前

    我们想要一个 从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)
    })
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Itamar Haber    6 年前

    流媒体还没有在Redis中实现,所以分页是一种很好的方法。也就是说,列表数据结构也不太支持这种模式 LRANGE

    我建议您考虑另一种数据结构,如排序集或v5流来存储数据。