HMGET
命令在 Redis 中用于获取哈希表中多个字段的值。如果请求的某个字段不存在,该命令将返回 nil
。你可以使用 Lua 脚本来处理不存在的键,以便在一个原子操作中获取多个字段的值,并在字段不存在时执行其他操作。
以下是一个使用 Lua 脚本的示例,该脚本将在哈希表中查找字段 field1
、field2
和 field3
,并在找到这些字段时返回它们的值。如果某个字段不存在,脚本将返回一个包含 “Field not found” 的列表。
local result = {} local fields = {'field1', 'field2', 'field3'} local not_found = {} for _, field in ipairs(fields) do local value = https://www.yisu.com/ask/redis.call('HGET', KEYS[1], field) if value then table.insert(result, value) else table.insert(not_found, field) end end if #not_found > 0 then return {not_found} else return result end
要在 Redis 中执行此脚本,你可以使用 EVAL
命令:
EVAL