Redis 的 SETBIT 命令用于设置一个字符串中某一位的值为 1 或 0。然而,Redis 不支持一次批量设置多个位的值。要批量操作,您需要为每个位分别执行 SETBIT 命令。
如果您需要批量设置多个位的值,可以考虑以下方法:
- 使用 Lua 脚本:您可以编写一个 Lua 脚本来批量设置多个位的值。Redis 会执行 Lua 脚本中的命令一次,从而提高性能。例如,以下脚本会将 key1 中的第 2 位和第 4 位设置为 1:
local key = KEYS[1] local bits = ARGV[1] local value = https://www.yisu.com/ask/tonumber(ARGV[2])'1' then result = result | (value << (string.len(bits) - i)) end end redis.call('SETBIT', key, tonumber(string.sub(bits, 1, 1)), result) return true
要使用此脚本,您可以通过 EVAL
命令执行它:
EVAL