Rails / Dalli: истекает фрагмент из другого пространства имен
У меня есть два приложения, подключающиеся к серверам memcached в разных пространствах имен, например, ради них мы будем называть их "admin" и "users".
Время от времени я хочу удалить некоторые фрагменты в пространстве имен "users" из приложения администратора.
Примечание: я не кэширую / истекаю действия согласно другим нескольким вопросам / ответам, которые я нашел здесь. Я хочу, чтобы истек срок действия ключей, таких как "abcde". Я кеширую все что угодно, результаты AR, JSON и так далее.
Уже пробовал такие вещи, как:
Rails.cache.delete("abcd")
Rails.cache.delete("users/abcd")
Rails.cache.delete("/users/abcd")
Дайджесты отключены.
Как мне это сделать?
1 ответ
Если ваш кеш rails сконфигурирован с пространством имен, это пространство имен будет автоматически добавлено к ключу кэша. Итак, когда вы Rails.cache.write("FOO", "BAR")
ключ на самом деле будет $NAMESPACE:FOO
, Ключи являются просто строками и не могут перемещаться как файловая система или что-либо необычное (AFAIK).
Я думаю, что ваш лучший вариант - создать отдельный экземпляр клиента dalli для альтернативного пространства имен для удаления ключа.