Термин «выселение» относится к ключам с установленным сроком действия (TTL).Хотя нет выделенной команды для достижения того, что вы хотите, вы можете использовать транзакцию, такую как:
WATCH bucket-1
HGET bucket-1 name
(pseudo: if not nil)
MULTI
HDEL bucket-1 name
EXEC
Если EXEC
не удается, это означает, что вы находитесь в потоке B (при условии, что A попал туда первым).
В качестве альтернативы, вышеупомянутое может быть сжато в идиоматический скрипт Lua - как предложено @The_Dude - например, ( добавлены новые строки для удобства чтения ):
EVAL "local v=redis.call('HGET', KEYS[1], ARGV[1])
redis.call('HDEL', KEYS[1], ARGS[1])
return v"
1 bucket-1 name
A nil
ответ означает, что вы B.