如何并行运行单个Lua脚本对多个Redis值?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何并行运行单个Lua脚本对多个Redis值?相关的知识,希望对你有一定的参考价值。
在Redis中,我们有表示输入值的字符串。我们(希望)拥有一个动态生成的Lua脚本(在用户使用GUI定义之后),该脚本根据输入字符串计算结果字符串。每组输入值彼此独立。所以这应该是平凡的并行,但是,EVAL
似乎阻止直到完成。
Redis中是否有一种方法可以跨越一堆值运行单个Lua脚本而无需重写脚本本身来执行此操作?
答案
由于Redis
是作为单线程服务器实现的,因此不可能并行地从同一客户端运行多个命令。但是,您应该能够在多个客户端上运行多个命令(包括script
命令),Redis将在其IO循环中交错它们。
话虽如此,Redis
不仅超快,而且灵活;请考虑以下选项之一:
- 自己编写Redis模块,添加命令或为您的喜好添加新命令。
- 考虑一个多分片环境。这将使每个redis-server(或shard)能够独立运行,同时您可以将调用定向到正确的分片。这有点劳力密集,如果你考虑这个解决方案,请告诉我,我可以进一步指导你。
祝一切顺利!
以上是关于如何并行运行单个Lua脚本对多个Redis值?的主要内容,如果未能解决你的问题,请参考以下文章