【问题标题】:Redis + Lua. Can I return result without storing it in memory?Redis + Lua。我可以返回结果而不将其存储在内存中吗?
【发布时间】:2017-01-01 06:32:01
【问题描述】:

我在 Redis 环境中执行了以下 Lua 脚本:

    local result = {}
    local comment_ids = redis.call('smembers', 'comment:all')
    for _, key in ipairs(comment_ids) do
        local comment_text = ...
        local article_name = ...
        local user_name = ...

        result[#result+1] = {article_name, user_name, comment_text}
    end
    return result

基本上,这里发生的事情是我们用一些聚合数据(article_name、user_name、comment_text)填充“结果”表并返回它。

据我了解,该表将完全存储在内存中,直到返回语句。

我的主要问题是,我可以逐行返回数据,而不将完整响应存储在内存中吗?

另外,使用 Lua 脚本进行聚合是否合适? (就像我在这里尝试做的那样)。 谢谢。

【问题讨论】:

    标签: database lua redis


    【解决方案1】:

    不,您不能流式传输结果。

    WRT 也 - 非常合适。

    【讨论】:

    • 感谢您的帮助!我刚刚开始尝试使用 Redis 和 Lua,所以我对这方面的常见做法几乎一无所知,
    • 每个人都开始了,你似乎走在正确的道路上。
    猜你喜欢
    • 2013-08-31
    • 2023-03-20
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    • 2018-06-21
    • 2015-07-20
    • 1970-01-01
    • 2012-03-11
    相关资源
    最近更新 更多