gpt4 book ai didi

redis - 是否阻止 lua 脚本 redis?

转载 作者:可可西里 更新时间:2023-11-01 11:46:47 24 4
gpt4 key购买 nike

我为 redis 4 使用简单的 lua 脚本:

        local result = {}
local vcounters = redis.call( "zrange", "vcounters::"..date, 0, -1, "withscores" )
local i = 1
while i < #vcounters do
local vid = vcounters[i]
if result[vid] == nil then result[vid] = 0 end
result[vid] = result[vid] +
(redis.call("scard", "vcounters::"..date.."::session::"..vid) or 0)
i = i + 2
end
return cjson.encode(result)

它是来自客户端脚本的替代 zrange/scard 命令,运行速度快 4-5 倍。但是这个脚本是否会阻止 zadd 命令?

最佳答案

是的,当脚本运行时,不会执行其他数据库命令(它们必须 wait until it is done )。

从好的方面来说,如果您需要它是原子的,那么脚本也不会与并发数据库更新交错(而从客户端发出的单个命令可能会与来自其他客户端的命令混合在一起)。

关于redis - 是否阻止 lua 脚本 redis?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48091418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com