2015-01-26 3 views
2

Мой случай использования заключается в следующем:Использование распределенного кэша с возможностью обрабатывать Cache Miss

клиенты приложений использует Distributed Cache (Memcached/Redis/и т.д.) для кэширования вывода БД. Я хотел бы добавить еще одну функциональность, скрытую от клиентов приложений. Как обращаться с кэшем. Мисс , например. Клиент приложения просто запрашивает значения для ключа для распределенного кэша (не зная сведений о БД). Теперь он хотел бы, чтобы распределенный кеш обрабатывал кеш-мисс - получить данные из реляционной базы данных и кэшировать ее.

Кажется, что Redis/Memcached не предоставляют такую ​​функцию. Я что-то упускаю, или я должен смотреть на другие инструменты/рамки для этого варианта использования.

+0

Я не думаю, что redis имеет коннектор для mysql напрямую, поэтому он не знает, какие данные он кэширует, я думаю, вам придется обрабатывать его на уровне приложения или писать прокси-службу перед redis –

ответ

2

Необходимо использовать схему кэширования с чтением/записью, в которой клиентское приложение будет рассматривать кеш в качестве основного хранилища данных и выполнять все операции чтения и записи в кеше. Кэш с другой стороны будет отвечать за синхронизацию с базой данных с помощью развернутых провайдеров сквозной/сквозной передачи.

В режиме чтения, если данные отсутствуют в кеше, кеш сам загружает данные из базы данных, избегая пропусков в кеше.

Прочитать this article от Iqbal Khan для получения дополнительной информации о кешировании с чтением/записью.

Эта функция доступна в TayzGrid от Alachisoft. Java-клиент NCache также предоставляет эту функцию.