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个元素。 即
管道
,您可以一次向Redis发送多个命令,然后读取所有回复。您还可以使用减少RTT
使用管道
,您可以一次向Redis发送多个命令,然后读取所有回复