【问题标题】:Redis Lua scripting with large loops带有大循环的 Redis Lua 脚本
【发布时间】:2015-08-27 14:50:25
【问题描述】:

对于 10,000 次迭代,以下哪个循环在 Redis Lua 脚本中运行得更快。或者它们会以相同的速度运行。

在 lua 脚本中访问 redis 键是否与访问局部变量(例如表的特定索引处的值)所花费的时间相同。

local members = redis.pcall('smembers','10000memberset')

for i=1,table.getN(members) do

 local value = members[i]
  -- do some logic on the value

end

for i=1,10000 do

  local value = redis.pcall('get',i) 
  -- do some logic on the value

end

谢谢!

【问题讨论】:

  • 运行代码,计时并告诉我们结果...
  • 会做,只是想发帖看看有没有人尝试过这个。
  • 只是猜测,但我会说循环会更昂贵
  • 不管怎样,你不应该在Lua中做昂贵的任务,否则你会阻塞整个Redis服务器几毫秒甚至几秒..
  • 在 redis 中使用 1,000,000 个项目集和 1,000,000 个键进行测试后,第二个循环快了 6 倍。 20.5s vs 3.1s

标签: lua redis


【解决方案1】:

在 redis 中使用 1,000,000 个项目集和 1,000,000 个键进行测试后,第二个循环的速度提高了 6 倍。 20.5s vs 3.1s。

【讨论】:

    猜你喜欢
    • 2015-06-18
    • 1970-01-01
    • 2015-10-27
    • 2021-04-12
    • 2021-05-20
    • 1970-01-01
    • 2016-01-30
    • 2020-11-08
    • 1970-01-01
    相关资源
    最近更新 更多