Назад | Перейти на главную страницу

Настройка memcached для конкретного сценария

У меня есть веб-приложение, которое запрашивает сервер opentsdb (который в бэкэнде использует кластер Hbase) для точек данных с различными метриками и использует графическую библиотеку dygraph javascript, я строю эти метрики. Поскольку получение всех данных за прошедший день из opentsdb для определенной метрики само по себе занимает почти 2 секунды, мое приложение, которое строит почти 25 метрик, становится очень медленным.

Чтобы уменьшить эту задержку, я думаю об использовании модуля memcached php5 для кеширования всех запросов. Но у меня мало вопросов по memcached.

  1. Есть ли способ настроить memcache, чтобы он продолжал обновлять его кеш в фоновом режиме, выполнив некоторые запросы командной строки через определенный интервал времени.

  2. Есть ли способ настроить memcache, чтобы он всегда отвечал на запрос с использованием кеша, вместо того, чтобы сначала обновлять его кеш, потому что мое приложение просто отображает точки данных за прошедший день. Отсутствие некоторых точек данных не так важно.

думаю php.net руководство для memcached покрывает ваши потребности. Но помните, что вы не можете получить записи, которые вы сохранили в memcache как вы это делаете в своей базе данных select команда.

  1. Memcahe - это служба, которая работает в фоновом режиме, и вы можете подключиться к ней с помощью модуля php memcache. Любая запись, которую вы храните в кэше памяти, имеет expire флаг, который позволит вашему серверу memcache знать, когда ему нужно удалить вашу запись. Взгляните на этот.

  2. Это должно быть в вашем php-коде. Вы можете добавить все свои записи на сервер memcache и, например, установить срок их действия на один день. Все записи в кэше памяти выделяются ключом. Теперь в вашем PHP-коде вместо отправки запроса в базу данных вы можете сначала проверить кэш памяти, чтобы узнать, хранит ли он вашу запись, отправив ей ваш ключ данных, или ваши данные были удалены из-за истечения срока их действия. Если срок действия записи истек, пора создать запрос для выбора данных из базы данных и их повторного сохранения на сервере memcache.