Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> memcache, Как правильно сделать 
V
    Опции темы
Muerto
Дата 28.2.2011, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Смотрел я на функции memcache ... и вот думаю...
Как бы мне грамотно проверять если пора обновлять кэш или нет?

Я могу например stdClass закешировать

stdClass->timestamp
и stdClass->Data

Но выходит что каждый раз я буду получать все данные целиком, что мне не совсем нравиться...

Когда я проверяю filemtime я могу его и вовсе не загружать если он устарел а сразу генерировать новые данные....

А как здесь быть не решил как лучше, может мудрый совет у кого будет...


--------------------
user posted image
PM MAIL   Вверх
Shogun
Дата 1.3.2011, 02:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сёгун-сан
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 8.6.2006
Где: Кишинёв

Репутация: 9
Всего: 11



Muerto, Вы можете например ставить лимит на хранения данных в memcache, тогда и получится аналог filemtime.

Код

$mem = new Memcache();

if (!$data = $mem->get('data_object'))
  {
    $data = new stdClass();
    ...
    $mem->set('data_object', $data, time() + 30);
  }

...


А ваше странно что Вы хотите использовать memcache вместо filecache, обычно он нужен уже при нагруженных проектах, тогда и поймете его преимущество перед файловым кэшем.
Копайте гугл с Memcached vs File cache ...

Еще http://docs.php.net/manual/ru/book.memcached.php


--------------------
2b || !2b
PM MAIL ICQ Skype   Вверх
Muerto
Дата 1.3.2011, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Shogun, Я сделал по другой системе
 stdClass $ob=new stdClass();
$ob->time=time();
$ob->data=$data;

И если нужно время то просто получаю...

А то если экспайер ставить, то может быть что в кеше вообще нифига не будет

И вот сравнивал производительность своих классов http://forum.vingrad.ru/forum/topic-323707.html memcache не удевил к лучшему


--------------------
user posted image
PM MAIL   Вверх
solenko
Дата 1.3.2011, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



Цитата

А то если экспайер ставить, то может быть что в кеше вообще нифига не будет

А что с того, чот там есть неактуальные данные? Только забивать место


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Muerto
Дата 1.3.2011, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



solenko, У меня просто много разных систем кеширования... http://forum.vingrad.ru/forum/topic-323707...y2307591/0.html
 мне нужно что бы они работали одинаково...
Не у всех есть мемкэш, поэтому мои классы имеют одни и те же методы, что бы я моментально мог переключать


--------------------
user posted image
PM MAIL   Вверх
Shogun
Дата 1.3.2011, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сёгун-сан
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 8.6.2006
Где: Кишинёв

Репутация: 9
Всего: 11



Цитата(Muerto @ 1.3.2011,  13:27)
solenko, У меня просто много разных систем кеширования... http://forum.vingrad.ru/forum/topic-323707...y2307591/0.html
 мне нужно что бы они работали одинаково...
Не у всех есть мемкэш, поэтому мои классы имеют одни и те же методы, что бы я моментально мог переключать

Factory + Adapter ??


--------------------
2b || !2b
PM MAIL ICQ Skype   Вверх
solenko
Дата 1.3.2011, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



Цитата(Muerto @  1.3.2011,  12:27 Найти цитируемый пост)
solenko, У меня просто много разных систем кеширования... http://forum.vingrad.ru/forum/topic-323707...y2307591/0.html
 мне нужно что бы они работали одинаково...
Не у всех есть мемкэш, поэтому мои классы имеют одни и те же методы, что бы я моментально мог переключать 

Да, они имеют одинаковый интерфейс (грубо set/get/delete/exists), но то, что при кешировании в файлах  приходится отслеживать expire самому, не повод для того, чтобы не делать это штатными средствами в memcache.



--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
solenko
Дата 1.3.2011, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



Цитата(Muerto @  1.3.2011,  12:27 Найти цитируемый пост)
solenko, У меня просто много разных систем кеширования... http://forum.vingrad.ru/forum/topic-323707...y2307591/0.html
 мне нужно что бы они работали одинаково...
Не у всех есть мемкэш, поэтому мои классы имеют одни и те же методы, что бы я моментально мог переключать 

Да, они имеют одинаковый интерфейс (грубо set/get/delete/exists), но то, что при кешировании в файлах  приходится отслеживать expire самому, не повод для того, чтобы не делать это штатными средствами в memcache.



--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Muerto
Дата 1.3.2011, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



solenko, В моем интерфейсе есть метод public boolean isUpToDate(String key, int timeInSeconds) и хотелось бы реализовать...


Это сообщение отредактировал(а) Muerto - 1.3.2011, 19:23


--------------------
user posted image
PM MAIL   Вверх
solenko
Дата 1.3.2011, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



int timeInSeconds -- непонятно значение параметра
а реальный isUpToDate -- alias для exists


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Muerto
Дата 1.3.2011, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



solenko, а я не замечал в memcache такое, есть replace, set & get


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0794 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.