如何传递是一个键列表到一个Redis Lua脚本,然后遍历它们

hrirmatl  于 2023-04-19  发布在  Redis
关注(0)|答案(1)|浏览(164)

在我的服务中,它与我的Redis缓存分开托管,我从我的数据库中收集了一堆密钥,我想发送到Redis缓存中做一些事情。目前,我从我的服务向Redis发出了一堆单独的调用,为每个密钥发出了一堆单独的命令,这需要很长时间。
有没有可能收集这些密钥并发出批量操作(可能使用Lua)?我的几个用例是:

  • 删除密钥列表。我可以执行类似call('DEL', unpack(KEYS))的操作吗?
  • 在键对之间复制值。我可以迭代键对并执行类似call('HMSET', KEYS[i], unpack(call('HGETALL', KEYS[i+1])))的操作(并一次迭代两个)吗?
mw3dktmi

mw3dktmi1#

是的,使用Lua脚本来收集一堆单独的命令。

  • 删除键列表。
for _, key in ipairs(KEYS) do
  redis.call("DEL", key)
end
  • 在键对之间复制值
for i = 1, #KEYS, 2 do
  redis.call("COPY", KEYS[i], KEYS[i+1])
end

相关问题