[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как лучше сохранять кеш?
Страницы: 1, 2, 3
Invis1ble
оптимизация рабочего времени - это писать систему кэширования, когда она становится нужна

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

sergeiss
Так в том и фигня, что потом это потребует больше времени.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Invis1ble
необязательно, если с самого начала писать - у тебя будет больше кода, который сложнее читать, вносить изменения и дебажить, например

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Arh
Цитата (Invis1ble @ 24.03.2015 - 23:55)
Цитата (Arh @ 24.03.2015 - 22:50)
cache::set('menu',$menu);

хорошо, когда уже написана реализация cache::set(), можно удобно прикрыться абстракцией на форуме, мол, посмотрите, как всё просто! :D

Да чё там реализовывать =)

#Получение кеша
static function get ($key = '') {

$file = ROOT.'/cache/'.md5($key).'.cache';

if(file_exists($file)) {

return file_get_contents($file);

}

}


#Сохранение кеша
static function set ($key = '', $value = '') {

$file = ROOT.'/cache/'.md5($key).'.cache';
file_put_contents($file,$value);

}



_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Invis1ble
Цитата (Arh @ 24.03.2015 - 23:20)
#Сохранение кеша
static function set ($key = '', $value = '') {

    $file = ROOT.'/cache/'.md5($key).'.cache';
    file_put_contents($file,$value);

}
Arh
Цитата (Invis1ble @ 25.03.2015 - 00:21)
Цитата (Arh @ 24.03.2015 - 23:20)
#Сохранение кеша
static function set ($key = '', $value = '') {

    $file = ROOT.'/cache/'.md5($key).'.cache';
    file_put_contents($file,$value);

}

удачи при дебаге гейзенбагов smile.gif

Спасибо конечно, но что не так?

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Invis1ble
я ранее написал, что не так все просто
ты не учитываешь многопоточную суть веба

начни отсюда:
google -> race condition

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Arh
Цитата (Invis1ble @ 25.03.2015 - 00:35)
я ранее написал, что не так все просто
ты не учитываешь многопоточную суть веба

начни отсюда:
google -> race condition

Тогда так

file_put_contents($file,$value,LOCK_EX);


В любом случае реализация cache::set() это предмет другой дискуссии.



_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
gam0ra
Всем спс за ответы!!
Я сделал так у меня был сложный запрос SQL где участвовали 3 базы Были Join'ы (это поиск на сайту с разными параметрами)
Вот всю выборку я прогнал через json_encode(); и поместил в фаил с расширением .php (название файла с кэшом связал с id сесией)
Так как у меня постраничная навигация и не хочется чтобы каждый раз выпонялся этот SQL запрос
Я теперь выборку которая была выполнена 1 раз дергаю из файла и при помощи json_decode() обратно превращаю в массив и выбираю)

еще хотел сделать проверку целый ли кэш но подумал это лишнее)
Invis1ble
gam0ra
ты задрал со своей анимированной аватаркой
я только предыдущую заблочил adblock'ом, так ты новую поставил

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

paul85
Цитата (Invis1ble @ 25.03.2015 - 22:23)
я только предыдущую заблочил adblock'ом, так ты новую поставил

Ой, как хорошо! Спасибо за подсказку, а то аж дурно делается от этого красного мельтешения! biggrin.gif

Цитата (sergeiss @ 24.03.2015 - 23:57)
Arh правильно говорит и про сайтмап, и про меню (а также во многих других случаях) - лучше один раз перегенерить

sergeiss, ну а как быть с моими расчетами, которые как бы намекают на то, что во многих проектах кэширование вообще не имеет никакого смысла? Вплоть до 10к уников в сутки. Зачем беречь ресурсы, которых итак выше крыши? Ну уйдут они в idle, что с экономической точки зрения просто чудовищно.

Цитата (gam0ra @ 25.03.2015 - 18:12)
Так как у меня постраничная навигация и не хочется чтобы каждый раз выпонялся этот SQL запрос

Цитата (gam0ra @ 25.03.2015 - 18:12)
Я теперь выборку которая была выполнена 1 раз дергаю из файла и при помощи json_decode() обратно превращаю в массив и выбираю)


Ага, то есть вот у меня интернет-шоп где 80к товаров. И я такой беру и все их загружаю в RAM. Причем при каждом обращении... Это любопытно! То есть вычислительный ресурс нам жалко, а RAM не жалко? Интересно-интересно! wink.gif

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

sergeiss
Цитата (paul85 @ 25.03.2015 - 22:37)
ну а как быть с моими расчетами, которые как бы намекают на то, что во многих проектах кэширование вообще не имеет никакого смысла? Вплоть до 10к уников в сутки. Зачем беречь ресурсы, которых итак выше крыши? Ну уйдут они в idle, что с экономической точки зрения просто чудовищно.

Тут вопрос не только в кэшировании, но и просто в четкости структуры проекта smile.gif Я просто сам также иногда делаю, т.е. редко изменяемые данные обрабатываю сразу же после редактирования, а потом они берутся в уже готовом виде в определенном месте (будь это массив ПХП, просто текстовый файл или еще что-то). И я считаю, что это верно. Это своего рода "унификация". Да, может быть и не будет временного выигрыша при определенных условиях, но зато структура будет четко определенной. И не надо будет ставить лишних условий там, где они именно лишние, по здравому размышлению.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.