Как вы выбираете между Memcached, Redis и Varnish?
Я действительно очень смущен о Memcached, Redis и Varnish. Я знаю, что они используются для кэширования, но я не знаю, насколько они помогают, и как вы знаете, какой из них использовать.
И, наконец, я хотел бы знать, что вы будете использовать для сайта с загруженными пользователем изображениями и видео? Если это помогает, я использую среду Django.
Ответы
Ответ 1
Лайнер является нечетным, это сервер, который работает как обратный прокси-сервер перед реальным веб-сервером (apache, nginx и т.д.), и он хранит ответ сервера отдельно и может решить обслуживать его для последующий запрос без передачи запроса на сервер (веб-сервер), поэтому просто он похож на кэширование HTML.
Memcached и redis - это, фактически, серверы хранения данных, в частности серверы хранения ключей. С точки зрения python вы можете сказать, что это один огромный "словарь", вы устанавливаете значения с помощью ключа и извлекаете их по ключу. Есть несколько различий между ними обоими, вы можете просто Google memcached vs redis.
Ответ 2
Я использую Django и memcached, поэтому я могу сказать, как использовать этот.
У меня есть некоторые данные, почти никогда не меняющиеся, для которых требуется небольшое количество времени (несколько секунд) для загрузки.
Кэширование их превратит секунды в доли секунды, поэтому время загрузки уменьшается в 10 раз.
Использование memcached очень просто:
-
Установите и запустите memcached для вашей ОС.
-
Настройте Django для использования в качестве механизма кеширования.
В опции settings.py
или эквивалентного набора BACKEND
:
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache'
-
Хранить и извлекать данные из memcached:
from django.core.cache import cache
cache.set('myData',myData)
# ... in another place:
myData = cache.get('myData')
if not myData:
# re-calculate myData in case of a 'cache miss', then re-caching it.
# myData = <calculations>
cache.set('myData',myData)