У меня есть программа, которая хранит данные в Redis. Существует произвольное количество наборов, хранящихся в ключах под пространством имен «foo», т. Е. keys foo:*
вернет список ключей наборов. Я хочу удалить строку «bar» из всех наборов, содержащих ее в пространстве имен. По существу (это в Ruby):Redis: удалить определенное значение из всех наборов
redis.keys("foo:*").each do |key|
redis.srem(key, "bar")
end
Благодаря использованию keys
, которая не предназначена для использования в производстве, это неэффективно, а не атомные. Есть ли лучший способ удалить «бар» из всех наборов, учитывая, что у меня нет ключей наборов, которые я хочу использовать заранее?
Я был бы в порядке с использованием сценария Lua, если это единственный способ сделать атомарность и сделать ее работоспособной.