【发布时间】:2017-12-28 15:03:46
【问题描述】:
在 Redis 中,我们有表示输入值的字符串。我们(希望)有一个动态生成的 Lua 脚本(在用户使用 GUI 定义之后),它根据输入字符串计算结果字符串。每组输入值彼此独立。所以这应该是微不足道的并行化,但是,EVAL 似乎会阻塞直到完成。
Redis 中有没有一种方法可以跨一堆值运行单个 Lua 脚本,而无需重写脚本本身来执行它?
【问题讨论】:
在 Redis 中,我们有表示输入值的字符串。我们(希望)有一个动态生成的 Lua 脚本(在用户使用 GUI 定义之后),它根据输入字符串计算结果字符串。每组输入值彼此独立。所以这应该是微不足道的并行化,但是,EVAL 似乎会阻塞直到完成。
Redis 中有没有一种方法可以跨一堆值运行单个 Lua 脚本,而无需重写脚本本身来执行它?
【问题讨论】:
由于Redis 是作为单线程服务器实现的,因此无法从同一个客户端并行运行多个命令。
但是,您应该能够在多个客户端上运行多个命令(包括script 命令),并且 Redis 会在其 IO 循环中将它们交错。
话虽如此,Redis 不仅速度超快,而且灵活;
请考虑以下选项之一:
一切顺利!
【讨论】: