Отображение традиционных кэшей в memcached? (но в .NET) - PullRequest
1 голос
/ 19 ноября 2008

Я строю систему кеширования и хочу, чтобы она была готова к распределенному кешированию в стиле memcached. То, что я хочу сделать, - это преобразовать традиционный Hashtable / Dictionary из (string -> object) и разрешить обработку каждого элемента в самом кэше так, как System.Web.Caching.Cache может делаем.

Я знаю, что memcache требует некоторых изменений в вашем мышлении о кешировании, особенно в отношении управления сроком действия, но у меня пока нет большого опыта в этом. Кто-нибудь знает статью / сайт / и т. Д. С оберткой кеша вокруг распределенного кеша? Я хотел бы попытаться понять, как можно контролировать размер кэша, расставлять приоритеты элементов в кэше в зависимости от того, насколько они используются и т. Д.

Спасибо! Стив

PS - Я еще не видел достаточно о Velocity, чтобы знать, применима ли та же модель хэш-ключа, если вы много знаете о Velocity, я также буду признателен за любую помощь!

Ответы [ 3 ]

2 голосов
/ 22 августа 2009

Самое главное - убедиться, что ваше приложение легко портировать, следуя обычным принципам DI / IOC (внедрение зависимостей / инверсия управления). Поэтому код, который зависит от кеша, не должен

  • Получить ссылку на сам кеш
  • Ссылка на словарь <,> объект

Вместо этого убедитесь, что код

  • Вызов кеша через интерфейс, например, IDictionary <,>
  • Получить ссылку на внедренный кеш

Если вы используете платформу DI, то при переходе к memcached вы просто меняете код конфигурации DI, и все ваши компоненты, которым необходим кеш, теперь будут работать с memcached.

И если вы обнаружили, что один конкретный компонент memcached .NET не работает должным образом, вы можете легко его изменить.

1 голос
/ 19 ноября 2008

Вы можете проверить одну из оболочек Memcached с открытым исходным кодом для .Net. Это может быть полезно. Вот один из Sourceforge, который я некоторое время работал на производстве.

Memcached .net

0 голосов
/ 01 января 2009

Это может быть полезно Поставщики Memcached

...