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 для альтернативного пространства имен для удаления ключа.

Другие вопросы по тегам