Используя .NET, как и зачем использовать memcached? - PullRequest
2 голосов
/ 30 марта 2010

Я слышал много разговоров о memcached , но, кратко изучив его, я не мог понять, какие преимущества я могу использовать вместо использования старого доброго Dictionary<string, object> для кэширования моих данных в моих приложениях.

Может кто-нибудь объяснить мне это?

Ответы [ 3 ]

1 голос
/ 30 марта 2010

Причина, по которой я начал изучать его, заключалась в том, что наше приложение было сбалансировано по нагрузке на нескольких серверах: если бы я использовал memcached, я мог бы использовать его кеш (а в некоторых реализациях, похоже, также имеется поставщик состояния сеанса), чтобы не только разделить загружается на все серверы, но также сбивает один с фермы для технического обслуживания или развертывания, оставляя остальные в целости.

1 голос
/ 30 марта 2010

Как я понял после прочтения википедии и memcached.org, он имеет как минимум следующие функции

  • memcached действует как служба для вашей программы, поэтому, если ваша программа падает, memcached не
  • может быть распределено количество серверов (масштабируемость!)
  • это кеш , а не просто словарь, поэтому он может удалять данные, если хочет (без переполнения)

похожая концепция - не Dictionary<string, object>, а HttpContext.Current.Cache, но все же она отличается

0 голосов
/ 30 марта 2010

Он не сильно отличается от словаря, он просто работает на другом сервере.

Вы захотите использовать memcached, если вам нужен кеш, чтобы жить дольше, чем время жизни вашего приложения ASP.NET (которое может быть переработано в любой момент). В зависимости от размера и количества элементов, которые необходимо кэшировать, вы можете добраться до точки, где на сервере IIS недостаточно места. Помните, что оно должно запускать приложение и кэшировать все элементы.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...