我真的花了5分钟发现redis和lua中的脚本如果我错过了一些重点,请原谅我,但有没有理由不保存一些 lua函数在 redis 中重新用作某种模块加载?粗略的例子:
redis 127.0.0.1:6379> set keyCount "return function(...) return table.getn(redis.call('keys', arg[1])) end"
redis 127.0.0.1:6379> eval "return loadstring(redis.call('get', KEYS[1]))()(ARGV[1])" 1 keyCount *
答案 0 :(得分:1)
你可以这样做,但它并没有用。您应该使用EVALSHA代替。
答案 1 :(得分:0)
没有什么可以阻止你做你所描述的,即将Lua脚本源存储在Redis键中。
关于同一主题,我有一个小小的想法:https://gist.github.com/itamarhaber/e030fad40c5583b11e01
编辑:只是为了确保我们在同一页面上,虽然没有什么可以阻止你,但你也可能不应该...这不会很好地发挥作用群集的分片。