Статьи
Портфолио
Друзья
Контакты

Последние статьи

15.10.2011 Zend Framework Day 2011, 12 ноября, Киев (0)

27.09.2011 MSSQL, XML и PHP. Как заставить это работать из под *nix? (0)

22.06.2011 Zend Framework, MSSQL и UTF-8 - проблемы с кодировками (5)

Все

Категории

PHP (2)

Zend Framework (32)

Javascript (4)

Другое (13)

Книги (1)

Все

RSS

Статьи

Комментарии

Портфолио

Облако тегов

программирование  open search  портфолио  php  zend framework  Zend_Db  Smarty  Zend_Form  паттерны  javascript  niceforms  jQuery  Zend_Mail  веб  Google  Zend_Rest  Zend_View_Helper  zend casts  Zend_View  Zend_Layout  speedUp  интернет  Загрузчик фотографий  Flash  ВКонтакте  zend  localization  zend_translate  gettext  Я читаю  Книги  sphinx  софт  массовые рассылки  хранение данных 

Все

Статистика



Все о соломенной крыше уклон крыши.
Недвижимость по низким ценам недвижимость Донецк - доска бесплатных объявлений.
Ищешь где отдохнуть? Дешевые авиабилеты киев доступно каждому.

Главная > Статьи > Zend Framework > Memcache и Zend: у Вас "падает" Memcache?
06.07.10 Memcache и Zend: у Вас "падает" Memcache?

 

Cached System

Решил сегодня написать небольшую заметку на тему проблем использования Memcached и Zend Framework. У меня при разработке веб-приложений на основе вышеупомянутой связки возникала всегда одна проблема, которую я решил элегантным и компактным способом. Речь идет о сбое в работе Memcached и как его отловить.

 

Бывает такое, что Memcached daemon перестает работать и тогда при обычном использовании адаптеров Zend_Cache_Backend Ваш сайт окажется неработоспособным. Но как же отловить такую ситуацию? Ведь при ее возникновении не бросается Exception ошибки подключения или что-то подобное, а только обычный Warning.

 

Мне очень хотелось для решения данного вопроса использовать кэширование в файлы, как резервного способа снижения нагрузки на сервер, а также поддержки работоспособности сайта.

 

Для этого я придумал следующее решение:

  • после создания объекта Zend_Cache проверяем возможность сохранения в кэш некоторой информации
  • если нам не удалось этого сделать, тогда мы создаем еще один экземпляр Zend_Cache, только который работает с файлами
  • только тогда мы возвращаем наш объект Zend_Cache

 

Естественно я приведу небольшой кусочек кода, для лучшего понимания процесса изложенного:

 

 

В принципе, на этом все. Теперь у Вас все будет работать безотказно, если же Вы не забудете проверить права на запись в папку кеша для файлов, конечно Подмигивает

Теги:  zend framework, zend_cache, memcache

Другие категории:

■ PHP ■ Zend Framework ■ Javascript ■ Другое ■ Книги
Комментарии к статье
  atukai

06.07.10 17:01:34

Интересный способ. Тоже думал об этом. Есть еще такая штука как Zend_Cache_Backend_TwoLevels. Но она, как я понял, только для дублирования кэша. Хотя было бы удобно, если бы она поддерживала ваш способ

  illusive

06.07.10 17:24:30

Я пробовал воспользоваться Zend_Cache_Backend_TwoLevels, он все-равно не понимает, что Memcache лежит. Поймать Exception не реально - его просто нет. Соответственно проверку я выполнил тестированием возможности записи кеша.
  dnka

28.07.10 23:39:16

Интересное решение... попробую повторить :)

  illusive

29.07.10 11:34:43

И что самое забавное решение еще ни разу не подводило за 2 месяца на интернет-ресурсах. Хотя видно, что мемкеш падал и не раз Смеётся

Дерзайте!

  Александр

24.02.11 15:57:23

Спасибо, реализовал механизм кеширования в файлы при сбое мемкеша на высоконагруженном проекте. Через сутки-двое посмотрим ;)

  illusive

24.02.11 16:18:35

Хотелось бы увидеть от Вас комментарий, о том как работает решение :)

  Olga

16.09.11 16:29:10

Очень интересный способ по моему, тоже попробую на днях.
  Феликс

16.09.11 16:31:24

То есть этот метод безотказно работает и без проблем можно использовать у себя? Спасибо.
  illusive

27.09.11 12:43:19

Да, проблем не возникает и не возникало

Оставить свой комментарий

 
Статьи | Портфолио | Друзья | Контакты
Идея и мозги: Васильев Андрей © 2008-2011 Web-Blog Кисточка и фантазия: Зелинский Богдан