Lua 如何减少与redis客户端的握手次数?

Lua 如何减少与redis客户端的握手次数?,lua,redis,in-memory-database,jedis,Lua,Redis,In Memory Database,Jedis,我正在编写一个需要非常快响应时间的应用程序,我有一些查询需要多个集合的交集和并集 例如 ((A联合体B)交叉口C) 然而,当我使用java客户机执行此操作时,每个查询都需要再进行一次握手,从而增加了响应时间 我想知道是否有一种方法可以在一次握手中完成,Lua脚本看起来是个不错的选择,但我不确定它在内部如何工作 Redis lua脚本是一种一次完成所有事情的阻塞方法 在redis服务器内部 因此,您将避免网络往返 当然你需要 因为它会阻碍你,所以你应该一直这样 知道何时使用它,如果所有这些并

我正在编写一个需要非常快响应时间的应用程序,我有一些查询需要多个集合的交集和并集

例如

((A联合体B)交叉口C)

然而,当我使用java客户机执行此操作时,每个查询都需要再进行一次握手,从而增加了响应时间

我想知道是否有一种方法可以在一次握手中完成,Lua脚本看起来是个不错的选择,但我不确定它在内部如何工作
  • Redis lua脚本是一种一次完成所有事情的阻塞方法 在redis服务器内部
  • 因此,您将避免网络往返 当然你需要
  • 因为它会阻碍你,所以你应该一直这样 知道何时使用它,如果所有这些并集和交集都需要 在生产环境中5秒,然后它会阻塞其他 正在等待执行的命令。其他命令可能无法执行,并抛出超时错误,这可能会导致情况更糟
  • 所以你也可以这样做 每50个元素的部分lua脚本调用是这样的(派生一个 通过使用不同的数字进行尝试获得最佳数字)
  • 还考虑使用多元素的太阳离子和烧结物,而不是仅使用2个元素。 即
  • sunion set1 set2 set3。。。 而不是

    sunionstore温度设置1设置2

    sunionstore温度设置3等等

    希望这有帮助。

    • Redis lua脚本是一种一次完成所有事情的阻塞方法 在redis服务器内部
    • 因此,您将避免网络往返 当然你需要
    • 因为它会阻碍你,所以你应该一直这样 知道何时使用它,如果所有这些并集和交集都需要 在生产环境中5秒,然后它会阻塞其他 正在等待执行的命令。其他命令可能无法执行,并抛出超时错误,这可能会导致情况更糟
    • 所以你也可以这样做 每50个元素的部分lua脚本调用是这样的(派生一个 通过使用不同的数字进行尝试获得最佳数字)
    • 还考虑使用多元素的太阳离子和烧结物,而不是仅使用2个元素。 即
    sunion set1 set2 set3。。。 而不是

    sunionstore温度设置1设置2

    sunionstore温度设置3等等

    希望这有帮助。

    您也可以使用来减少RTT

    使用
    管道
    ,您可以一次向Redis发送多个命令,然后读取所有回复。

    您还可以使用减少RTT

    使用
    管道
    ,您可以一次向Redis发送多个命令,然后读取所有回复