Камрады, когда пишите свое имхо, аргументируйте хотя бы.Не надо кешировать SQL запросы. Уж точно не так и не в этом случае.
По-моему прекрасная реализация! Благодарю за помощь!Хранить результаты кеша нужно в каком либо хранилище: либо это тупо файловая система, либо это Memcached или Redis сервер.
Если говорить сущностями и абстракциями у тебя должна быть сущность Cache и методы set, get, hasKey, delete, flush или что-то вроде того
Подсистема кеширования как таковая лежит на уровень ниже и при инициализации сущности Cache можно указывать какое именно хранилище тебе нужно.
Как-то так:
PHP:<?php Cache::init('filesystem'); $sql = "SELECT * FROM users"; if (!Cache::hasKey(md5($sql))) { $data = DB::query($sql)->fetchAssoc(); Cache::set(md5($sql), $data, 600)); // последний параметр это ttl - время жизни кеша } else { $data = Cache::get(md5($sql)); } var_dump($data);
запросы точно не надо, вот результат запроса да, надо -) как угодно, если решен вопрос инвалидацииНе надо кешировать SQL запросы. Уж точно не так и не в этом случае.
чем она прекрасная для тебя, если ты это впервые видишь?По-моему прекрасная реализация! Благодарю за помощь!
Я же писал что я хочу включать кэширование лишь для определенных запросов. Т.е. фактически я хочу иметь возможность кэшировать любого запроса, но по-умолчанию кэширование выключено.
Просто удобное решение. Кэширование данных я реализовал уже, но запросы кэшировал пока только с помощью переменных и только в текущей запросе, даже не думал о том чтобы хранить в файлах.чем она прекрасная для тебя, если ты это впервые видишь?
вообще, почему тебе понадобилось какое-то там кеширование? стильно, модно, молодежно или есть объективные показания?
но запросы кэшировал пока только с помощью переменных и только в текущей запросе
Обращайся, здесь только несколько человек могут оказать реальную помощь конкретным советом, остальные будут разглагольствовать в духе "тебе это не нужно, ты говнокодер, это вообще делается не так" итдПо-моему прекрасная реализация! Благодарю за помощь!.
А когда он про кэш в глобалс говорил, тебя это ни на какие мысли не натолкнуло? Да, такой нано-кэш только на время работы одного HTTP запроса.Чего-то я не понял, автор какие данные ты кешировал и как это так:
но запросы кэшировал пока только с помощью переменных и только в текущей запросе
фиксированная длинаА может хоть кто-то объяснить, нафига брать md5 (или другую хеш-функцию) от строки, чтобы сделать ее ключем масива, пусть для кеша, пусть не для кеша?
1. Фиксированная длина (как уже выше сказали)А может хоть кто-то объяснить, нафига брать md5 (или другую хеш-функцию) от строки, чтобы сделать ее ключем масива, пусть для кеша, пусть не для кеша?
это тебе так кажется. выиграл битву, но не войнуВурдалак, узбагойся, человек уже решил свою задачу
А в этой "войне" невозможно победить, можно только не проигратьэто тебе так кажется. выиграл битву, но не войну