Есть ли способ атомарного перемещения члена из одного набора в другой, возвращая члена, который был перемещен? В основном как LPOPRPUSH, который доступен для списков. Я видел этот скрипт LUA
redis.replicate_commands() -- needed since we call SRANDMEMBER below
local value = redis.call('SRANDMEMBER', KEYS[1])
if value then
redis.call('SMOVE', KEYS[1], KEYS[2], value)
end
return value
Это лучший способ сделать это? Мне также интересно, можно ли использовать SPOP / SADD, и что будет преимуществом одного над другим.