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 = 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 <script> 1 your_hash_key
其中 <script>
是上面提供的 Lua 腳本,your_hash_key
是你要查詢的哈希表的鍵。如果腳本返回一個包含 “Field not found” 的列表,你可以根據返回的結果執行相應的操作。