2015-03-10 8 views
7

Redis часто используется в качестве кеша, хотя он предлагает гораздо больше, чем просто кэширование в памяти (например, он поддерживает сохранение).Redis vs MemoryCache

Каковы причины, по которым вы решили использовать Redis, а не .NET MemoryCache? Настойчивость и типы данных (кроме пар ключ-значение) приходят на ум, но я уверен, что должны быть другие причины для использования дополнительного архитектурного уровня (то есть Redis).

+0

Не встроен ли MemoryCache в сервер приложений? Redis - это сетевой сервер, к которому можно получить доступ от разных клиентов. –

ответ

8

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

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

+0

Какие преимущества вы получаете, имея его в отдельном процессе? – Gigi

+0

Не только отдельный процесс, но и отдельный сервер. Одно простое преимущество - разделение модулей в архитектуре, другое - масштабируемость. MemoryCache будет ограничен памятью сервера приложений, тогда как в Redis или Memcached вы можете добавить несколько серверов или увеличить память сервера redis, чтобы обеспечить хорошую производительность. – DhruvPathak

+0

Я не уверен. Насколько я знаю, Redis копирует ключи через экземпляры, поэтому использование памяти будет одинаковым везде (грубо говоря). – Gigi