Кэш третьего уровня для NHibernate

Наш проект использует Entity Framework и имеет 2 типа кеша (в памяти, Redis) без какого-либо провайдера кеша. Из-за отсутствия поддержки кэша второго уровня в EF мы реализовали его самостоятельно. Таким образом, наш кэш в памяти - это простой набор пары ключ-значение, где ключ - это Id кеша, а значение - это кешированный объект. Мы также реализовали подобное кэширование для использования Redis. Для запроса мы смотрим на список кэша в памяти, и если это не так, мы смотрим на redis, а если его нет, мы запрашиваем базу данных.

Поскольку сущности каркаса сущностей имеют ссылку на контекст, мы не можем использовать сущность DbContext в кешировании, и нам нужно отобразить ее. Поэтому нам нужно создать много DTO.

Я знаю, что кеш - сквозная проблема , поэтому я ищу более чистое решение. По этой причине сначала я решаю использовать Memcached для In-Memory (вместо использования простого списка). В качестве второго и наиболее важного я могу перейти с EF на NHibernate для поддержки второго кэша. Я знаю, что кэш первого уровня занят сессионным объектом . Поэтому я хочу использовать Memcached для кэша второго уровня. Но есть ли кэш третьего уровня для Redis?

10
задан Community 23 May 2017 в 11:45
поделиться