Redis的INCRBY
命令不支持批量操作。INCRBY
命令用于給指定的鍵增加一個整數(shù)值。如果你需要對多個鍵執(zhí)行增量操作,你需要對每個鍵分別執(zhí)行INCRBY
命令。
例如,如果你需要對鍵key1
、key2
和key3
分別增加1、2和3,你需要執(zhí)行以下命令:
INCRBY key1 1
INCRBY key2 2
INCRBY key3 3
如果你需要批量執(zhí)行增量操作,可以考慮使用Lua腳本。通過在Redis中執(zhí)行Lua腳本,你可以原子性地對多個鍵執(zhí)行操作。這是一個使用Lua腳本的示例:
local keys = KEYS
local increments = ARGV
local result = 0
for i, key in ipairs(keys) do
result = result + tonumber(redis.call('GET', key) or '0') + increments[i]
redis.call('SET', key, result)
end
return result
要將此腳本保存為文件(例如increment_keys.lua
),可以使用以下命令:
cat <<EOF > increment_keys.lua
local keys = KEYS
local increments = ARGV
local result = 0
for i, key in ipairs(keys) do
result = result + tonumber(redis.call('GET', key) or '0') + increments[i]
redis.call('SET', key, result)
end
return result
EOF
然后,你可以使用EVAL
命令執(zhí)行此腳本:
EVAL "$(cat increment_keys.lua)" 3 key1 1 key2 2 key3 3
這將原子性地對key1
、key2
和key3
分別增加1、2和3。