Comments 205
//… и добавляем в memcache, с временем жизни в 2 часа.
отличный пример неверного комментария и магических констант :)
отличный пример неверного комментария и магических констант :)
+5
UFO just landed and posted this here
А вот это мы сейчас и проверяем :)
+1
UFO just landed and posted this here
На java всё так же, только вместо apache — tomcat или jetty. А иногда не вместо, а вместе.
+5
На главной странице вы получили классическую гонку. Раз в полчаса кэш будет чиститься и все пришедшие клиенты полезут в базу. При большом числе клиентов может случиться упс.
+7
Вообще в случае очень посещаемых главных разумно их генерировать по крону на стороне сервера в обычную статику .html
0
В базу полезет только первый. Остальные — в мемкеш.
Теоретически, при очень большой посещаемости может произойти ситуация, при которой в базу пойдут все, кто успеет сделать запрос МЕЖДУ тем как произойдет выборка из базы и тем, что она будет вставлена в memcache. Даже при тысяче запросов в секунду, врядли это будет больше десятка человек.
Теоретически, при очень большой посещаемости может произойти ситуация, при которой в базу пойдут все, кто успеет сделать запрос МЕЖДУ тем как произойдет выборка из базы и тем, что она будет вставлена в memcache. Даже при тысяче запросов в секунду, врядли это будет больше десятка человек.
-2
Я как раз и говорю про ту ситуацию, которую вы считаете теоретической. Конечно, если на сайт будет один запрос в минуту, то всё будет в порядке. Но статья ведь про хабраэффект?
Возьмите какую-нибудь утилитку для нагрузочного тестирования, заставьте её делать 1000 запросов в секунду на главную, сбросьте кэш и посмотрите, что получится.
Можете ещё вот это почитать, там есть варианты решения проблемы.
Возьмите какую-нибудь утилитку для нагрузочного тестирования, заставьте её делать 1000 запросов в секунду на главную, сбросьте кэш и посмотрите, что получится.
Можете ещё вот это почитать, там есть варианты решения проблемы.
+9
Справа куча иконок «поделиться» — от них рябит в глазах. Неужели нельзя сделать просто надпись «поделиться» и при наведении появляется див со всеми иконками? Можно через position absolute или просто рядом.
Вы сами представляете, откуда будете брать трафик? А как будете повышать процент возвращающихся?
Разработать небольшой проект под высокие нагрузки — это даже не пол работы, а гораздо меньше. Раскрутить и удержать пользователей — вот где собака зарыта. Сейчас клонов башорга сотни, а с такими плоскими баянами так больше, чем фотографов.
Ничего личного, удачи в развитии.
Вы сами представляете, откуда будете брать трафик? А как будете повышать процент возвращающихся?
Разработать небольшой проект под высокие нагрузки — это даже не пол работы, а гораздо меньше. Раскрутить и удержать пользователей — вот где собака зарыта. Сейчас клонов башорга сотни, а с такими плоскими баянами так больше, чем фотографов.
Ничего личного, удачи в развитии.
+24
Вы правы, сделали получше шеринг.
Насчет трафика — да я, собственно, вообще не собирался никому сайт показывать. Но люди стали друг другу ссылки кидать, просили добавить еще шортиков. На мой личный вкус, юмор на шортиках качественнее, чем на том же башорге.
Шортики — это ни в коем случае не клон башорга или какого-нибудь рейтинга статусов. Шортики — это место сбора хороших коротких шуток, не цитат, не статусов и не историй. Мне кажется, это интересный формат.
Спасибо за пожелание! :)
Насчет трафика — да я, собственно, вообще не собирался никому сайт показывать. Но люди стали друг другу ссылки кидать, просили добавить еще шортиков. На мой личный вкус, юмор на шортиках качественнее, чем на том же башорге.
Шортики — это ни в коем случае не клон башорга или какого-нибудь рейтинга статусов. Шортики — это место сбора хороших коротких шуток, не цитат, не статусов и не историй. Мне кажется, это интересный формат.
Спасибо за пожелание! :)
+2
Еще по трафу и шарингу. Надо сделать авторизацию через популярные сети (фб, вк, г+) и при клике мне нравится чел автоматом шарит понравившийся шортик туда откуда вошел. В итоге к вам придет траф с его друзей.
+1
Собственно «поделиться» равносильно «нравится», вот я к чему.
0
А как же сети Twitter и Мой Мир Mail.ru? Первая должна быть в силу схожести формата, вторая из-за любви ее пользователей к комментированию статусов
Поставите «Нравится» от Mail.ru и трафик, аналогичный Хабраэффекту вам обеспечен!
Поставите «Нравится» от Mail.ru и трафик, аналогичный Хабраэффекту вам обеспечен!
0
Мб надпись «Нравится!» над шуткой сделать в виде сердечка? А то сразу не заметишь…
Ну а так, Шортики понравились :) Первая запись на странице расположила меня к Вашему сервису сразу: «Израильский SQL-сервер отвечает запросом на запрос.» :D
Ну а так, Шортики понравились :) Первая запись на странице расположила меня к Вашему сервису сразу: «Израильский SQL-сервер отвечает запросом на запрос.» :D
+3
Шортики — это ни в коем случае не клон башорга или какого-нибудь рейтинга статусов. Шортики — это место сбора хороших коротких шуток, не цитат, не статусов и не историй. Мне кажется, это интересный формат.
Хорошая штука.
«Нуждики» напомнило, если кто помнит )
Хорошая штука.
«Нуждики» напомнило, если кто помнит )
+1
Опера 11.50, win7. При клике на ссылку «Что такое шортик?», ничего не происходит.
+3
По клику вроде и не должно, там текст появляется при наведении мышой. В Опере не появляется?
0
Всплывающей подсказкой? Ну вы блин даете, если что-то выглядит как ссылка и с первого взгляда ведет себя как ссылка, то оно и должно быть ссылкой. А раз так, сделайте хотя бы курсор другой, например стрелку со знаком вопроса.
Кстати, ИМХО, слишком много линий у вас на странице, тяжело читать. А так спасибо, сижу смеюсь;)
Кстати, ИМХО, слишком много линий у вас на странице, тяжело читать. А так спасибо, сижу смеюсь;)
+8
В таком случае нет резона делать ссылку на # — достаточно просто атрибута title внутри, например, того же span.
0
Bash.org?
-7
А просто добавить proxy_cache в nginx чем не вариант?
+2
А мне нравится и идея и реализация! Обновлять часто будете?
0
Картинка к посту просто требует этого:


+10
Вы зря кешируете на уровне запросов. Если можно закешировать всю страницу целиком, то так и надо делать (А если нельзя — надо постараться, чтобы было можно).
-3
Вы правы, но учитывая что я совсем новичок в программировании и работал над сайтом только пару вечеров — это было бы чересчур :)
0
За такие советы вас надо нещадно минусовать.
-3
То есть вы считаете, что full page cache на прокси — это не самый простой и эффективный способ кеширования? Почему?
+1
Потому, что надо не только кэшировать, но и инвалидировать кэш.
Для такого проекта как «Шортики» делать это эффективнее когда страница собирается из разных источников на сборщике, пусть даже этот сборщик — PHP.
А для проектов, где страница разная для каждого пользователя, постоянная динамическая сборка — единственный возможный метод, если вы не хотите получить эн факториал файлов на диске.
Кроме того, в ряде случаев это и работает быстрее, так как тратится только CPU, а не происходит seek по диску в поисках файла и его отдаче.
О сборщике на основе nginx читать тут: habrahabr.ru/blogs/nginx/119582/
Для такого проекта как «Шортики» делать это эффективнее когда страница собирается из разных источников на сборщике, пусть даже этот сборщик — PHP.
А для проектов, где страница разная для каждого пользователя, постоянная динамическая сборка — единственный возможный метод, если вы не хотите получить эн факториал файлов на диске.
Кроме того, в ряде случаев это и работает быстрее, так как тратится только CPU, а не происходит seek по диску в поисках файла и его отдаче.
О сборщике на основе nginx читать тут: habrahabr.ru/blogs/nginx/119582/
0
Вы шутите? У проекта шортики полностью статическая главная страница (для всех). На ней один запрос, который кешируется по времени. Пейдж кэш не всегда можно использовать. Но в конкретном случае и в конкретных условиях это очень хороший вариант…
P.S.
Кстати, о конкретной технологии кеша, и как его хранить (почему сразу файлы?) я ничего не говорил…
P.S.
Кстати, о конкретной технологии кеша, и как его хранить (почему сразу файлы?) я ничего не говорил…
+4
Подскажите, а зачем в этой связке вообще Apache? Не будет ли оптимальнее nginx+php_fpm?
+39
простите если глупость спрашиваю, но
Добавляем сжатие некоторых типов данных (экономит много трафика):
для чего эти строки сжатия статики если статику отдает nginx?
Добавляем сжатие некоторых типов данных (экономит много трафика):
для чего эти строки сжатия статики если статику отдает nginx?
0
чем то смахивает на зарубежный проект reddit.
-3
Автор, ну ведь вся статья же свелась к использованию memcache_set() / memcache_get() для защиты от Хабраэффекта. Все остальные вещи разжеваны в куче статей. Ну не стыдно?
Насчет того, что запустил проект и не постеснялся представить — молодец в любом случае.
Насчет того, что запустил проект и не постеснялся представить — молодец в любом случае.
-8
проект пока некоммерческий
Чем тогда объяснить наличие аж двух баннеров?
+15
Некоммерческий = не извлекающий прибыли. Копейки накапавшие с адсенса уйдут на оплату сервера.
На самом деле баннеров должно было быть меньше и они должны были быть аккуратнее, но мы не успели доделать новый вид сайта и решили запускаться как есть.
Позже мы сделаем баннеры менее заметными.
На самом деле баннеров должно было быть меньше и они должны были быть аккуратнее, но мы не успели доделать новый вид сайта и решили запускаться как есть.
Позже мы сделаем баннеры менее заметными.
0
> но мы не успели доделать новый вид сайта и решили запускаться как есть.
А куда торопились? Или нужно было по любому запустить 9 августа.
А куда торопились? Или нужно было по любому запустить 9 августа.
0
В утиль адсенс, «Московские индивидуалки» — вот реальный заработок сайтам развлекательной тематики, куда не зайду — везде они. Видать очень выгодно размещать такие баннеры.
+5
Не надо оправдываться) Думаю тут все понятливые. Просто не надо писать «не коммерческий», если сайт является коммерческим. «Копейки» это возможно пока, но сайт направлен именно на извлечение прибыли (будет посещаемость — будет прибыль). Но меня это ни чуть не задевает. Чтобы его поддерживать нужно тратить время, и деньги — нормальный стимул. Удачи.
+2
Я думаю, что некоммерческий проект — это проект у которого основная цель не извлечение прибыли. При этом получение прибыли не делает проект коммерческим.
+6
Принял P.S. за заминусованный комментарий и пытался нанести на него мышкой (:
+3
Разумеется, свежие шортики будут появляться на сайте с задержкой в полчаса, но это не страшно.
Решается очень просто — перезаписью кэша (или его сбросом, что проще, но хуже) при добавлении шортиков.
Решается очень просто — перезаписью кэша (или его сбросом, что проще, но хуже) при добавлении шортиков.
+2
UFO just landed and posted this here
Добавил Шортик, снова открылась та же форма, после сабмита, но с очищенными полями. Не понятно, добавился ли мой шортик или нет. Думаю было бы не плохо уведомлять пользователя, что все ок, шортик добавился!
+5
Экспорт цитат в популярные форматы (txt,pdf, etc.) — и будет вполне неплохая книжечка для заграничных поездок, к примеру. Мне лично всегда этого не хватало.
+2
Интересные шутки, но вам бы дизайн поменять, а то сильно уныло, сайт вроде юмористический, но в то же время серый какой-то. Удачи в развитии!
+1
nginx + uWSGI наше всё
-2
Какая конфигурация сервера, если не секрет?
0
Обычный EQ6 от хецнера. Но Шортики — не единственный сайт на сервере.
0
очень интересно стоил ли 1 запрос подобной оптимизации.
пробовали отключать мемкеш?
сколько запросов в пике?
пробовали отключать мемкеш?
сколько запросов в пике?
+1
А я не понял, зачем на апаче keep-alive. Nginx ведь всё равно запросы к бэкенду делает без keep-alive.
+1
Судя по статистике liveinternet.ru ресурс получил порядка 15000 просмотров за 2 часа (это около 2-х просмотров в секунду) с такой нагрузкой легко справится Apache и MySQL и без Ваших ухишрений.
P.S. шутки попадаются действительно смешные.
P.S. шутки попадаются действительно смешные.
+7
Но с ухищрениями серверу будет дышать легче. Так ведь? :-)
0
Вы можете утверждать, что в какую-то секунду не было, например, 100 запросов?
+3
Нет. Но я вижу, что сегодня нагрузка упала в 10 раз.
0
Как я угадал насчёт сотни :)
0
А сегодня (через день) нагрузка упала уже в 25 раз.
Так что мало оптимизировать проект нужно еще обеспечить стабильную посещаемость.
Так что мало оптимизировать проект нужно еще обеспечить стабильную посещаемость.
0
Был пик на 100 запросов/сек. Кроме того, мы рассчитывали не «чтобы только на хабраэффект хватило», а с большим запасом прочности. По нашим тестам выдержал 2,000 запросов/сек.
0
UFO just landed and posted this here
Дело не в хаброэффекте :) Просто пока что у вас контент хороший, правда.
+2
С оптимизацией справились неплохо, а вот за это подавление ошибок:
на серъёзном проекте я бы яйца Вам пооторвал бы 8)
Конечно, на трёхстрочном проекте на это можно забить, но только если развитие не предвидится. В любом случае, считаю, что писать лучше сразу нормально, используя преимущества языка, иначе внесение элементарных правок и дебаг будут занимать всё больше и больше времени.
Ещё мог бы посоветовать обратить внимание на стиль кодирования (возмите тот же Zend за основу), наблюдаются явные проблемы с именованием, табуляцией, запятыми, будущие Ваши команды оценят умение писать хороший, стилизованный код. В общем, успехов Вам, спасибо за интересную историю, Хабр торт! 8)
@mysql_select_db("ShoDB");
на серъёзном проекте я бы яйца Вам пооторвал бы 8)
Конечно, на трёхстрочном проекте на это можно забить, но только если развитие не предвидится. В любом случае, считаю, что писать лучше сразу нормально, используя преимущества языка, иначе внесение элементарных правок и дебаг будут занимать всё больше и больше времени.
Ещё мог бы посоветовать обратить внимание на стиль кодирования (возмите тот же Zend за основу), наблюдаются явные проблемы с именованием, табуляцией, запятыми, будущие Ваши команды оценят умение писать хороший, стилизованный код. В общем, успехов Вам, спасибо за интересную историю, Хабр торт! 8)
+5
а зачем там апач вообще?
php-fpm ресурсов жрет меньше и нету мутатнит с .htaccess
php-fpm ресурсов жрет меньше и нету мутатнит с .htaccess
+4
Жуть >_< просто невозможно читать на вашем сайте, оформление аля «рамки рамковые» да еще с пунктирными бордюрами… все серо сливается и рябит перед глазами, так нельзя делать, очень сложно привыкнуть, приходится напрягаться чтобы вычитать что-то=\\
Остается надеяться что завтра кто-нибудь придумает бугагашечки с комфортным оформлением оных)
Остается надеяться что завтра кто-нибудь придумает бугагашечки с комфортным оформлением оных)
+9
Автору Bogr под Android, если он видит это сообщение — пусть добавит в свое детище этот сайт.
+4
✔ В новом обновлении добавились Shortiki
0
У нас появилось отдельное приложение под Android, для желающих — market.android.com/details?id=az.mecid.shortiki
0
Сделал трансляцию потока на ВКонтакте: vkontakte.ru/shortiki_com
Сейчас пока первичный импорт не закончился немного засирает ленту, но осталось немного :)
Сделано на php+crontab+curl (для отправки сообщений на вконтакте).
Сейчас пока первичный импорт не закончился немного засирает ленту, но осталось немного :)
Сделано на php+crontab+curl (для отправки сообщений на вконтакте).
+2
Адская спам-машина переписана, понос из 200 записей удален и теперь каждые полчаса в ленте появляется бугагашенька.
Подписывайтесь, посоны :)
Подписывайтесь, посоны :)
0
Сделайте, что бы к записи вк добавлялась ссылка на шортик.
+2
Хмм… Но ведь кнопка «share|Поделиться» так и работает. Под записью на стене появляется ссылка на шортик.
0
Я имею ввиду не кнопку «Поделится» для контакта, а трансляцию потока на ВКонтакте пользователя themengzor. Обращение к нему было ) Просто запись в контатке с шортиком не содержит ссылки на него.
0
Знакомо, делал нечто подобное про анекдоты: anekdotme.ru (на правах рекламы)
0
Жаль, что вы не провели тестирование скорости работы сайта и создаваемой нагрузки на сервер до и после оптимизации. Сервисов, которые позволяют это сделать полно.
+1
Мы проводили, картинок и прочего не приведу, но навскидку — голый апач на 1000 одновременных реквестах отдавал сайт в среднем более чем за 5 секунд, после чего вообще перестал отдавать. После оптимизиции — 1000 конкаррентов отдает до секунды на реквест, не падает.
0
апач настраиваете как будто он фронт-энд. За nginx должны быть несколько другие резоны. И keepAlive и сжатие и кэширование.
Сжатие по mime отдайте nginx и deflate не при делах — все кто его поддерживает поддерживает и gzip. B nginx корректнее отрабатывает проблемные агенты со сжатием.
Кэширование — тоже лучше отдать nginx, тем более что скрипты пишите сами. Динамику запрашивайте ajax-ом или SSI на крайний случай. Тот же memcache поставить в кэширование nginx и будет все намного лучше.
В общем технически работа на троечку. А шортики ваши читаны уже раз на десятый. Хотите быть — будьте оригинальными.
Сжатие по mime отдайте nginx и deflate не при делах — все кто его поддерживает поддерживает и gzip. B nginx корректнее отрабатывает проблемные агенты со сжатием.
Кэширование — тоже лучше отдать nginx, тем более что скрипты пишите сами. Динамику запрашивайте ajax-ом или SSI на крайний случай. Тот же memcache поставить в кэширование nginx и будет все намного лучше.
В общем технически работа на троечку. А шортики ваши читаны уже раз на десятый. Хотите быть — будьте оригинальными.
0
Снимите шортики. То есть скриншот бы непомешал ;)
+2
Лучше так:
server { server_name www.shortiki.com; rewrite ... } server { server_name static.shortiki.com; root ПУТЬ_К_КАРТИНКАМ_И_CSS; } server { server_name shortiki.com; proxy_pass http://127.0.0.1:8081; }
+2
на кой чёрт немногочисленной статике отдельный субдомен? модно? %)
0
Это лишний днс запрос для клиента. Сайт будет открываться чуть дольше.
0
Если много статики на страницу — открываться будет даже быстрее.
Во-первых, есть ограничение браузеров на параллельную загрузку. Во-вторых, отдельным субдоменом/доменом мы избавимся от cookies, которых может быть много.
Ну и вообще хорошая практика держать статику отдельно — так ею легче управлять и можно легко и быстро вынести на какой-нибудь CDN, в случае необходимости.
Во-первых, есть ограничение браузеров на параллельную загрузку. Во-вторых, отдельным субдоменом/доменом мы избавимся от cookies, которых может быть много.
Ну и вообще хорошая практика держать статику отдельно — так ею легче управлять и можно легко и быстро вынести на какой-нибудь CDN, в случае необходимости.
+2
Подтяните, пожалуйста, стиль страницы к логотипу. И забейте на башорговые штампы — вы делаете нечто отличающееся от классического башорга. Ну и визуальный шум в виде пунктирных бордеров лучше убрать. Достаточно выделения серым. И черный сплошной бордер можно сделать светло-серым или вообще убрать — блок будет просматриваться и так.
Типа того: clip2net.com/s/16pqr
Типа того: clip2net.com/s/16pqr
0
Да, правильно.
— Шрифт без засечек и покрупнее;
— Подпись «поделиться:» убрать, ибо всем и так понятно, что это шаринг;
— Дату сделать человекопонятной (вчера, 21:30 / сегодня, 21:30 / 10 мая, 21:30 / 10 мая 2010, 21:30);
— Перед рейтингом поставить "+", что бы явно указать, что это рейтинг, не используя слово «рейтинг»;
— Ссылки «Нравится!» и номер бугагашеньки должны выглядеть как ссылки — подчеркнуты и выделены цветом.
— Шрифт без засечек и покрупнее;
— Подпись «поделиться:» убрать, ибо всем и так понятно, что это шаринг;
— Дату сделать человекопонятной (вчера, 21:30 / сегодня, 21:30 / 10 мая, 21:30 / 10 мая 2010, 21:30);
— Перед рейтингом поставить "+", что бы явно указать, что это рейтинг, не используя слово «рейтинг»;
— Ссылки «Нравится!» и номер бугагашеньки должны выглядеть как ссылки — подчеркнуты и выделены цветом.
0
Про способ запуска PHP скриптов как-то ни слова. Хотя можно предположить, что всё ограничилось традиционным mod_php.
А что за мифическая стабильность? Стоит упомянуть про связь апачевских MPM с mod_php.
Prefork отличается стабильностью, однако потребляет больше памяти и работает медленнее чем worker.
А что за мифическая стабильность? Стоит упомянуть про связь апачевских MPM с mod_php.
0
В целом неплохо, дело за рихтовкой мелочей (например, приведенных выше). Время покажет, оторвётся ли публика от баша и заглянет к Вам. Успехов )
0
Обнаружил глюк — при двойном щелчке на «Нравится!» рейтинг увеличивается на 2, хотя как я понял, от каждого человека только по 1 голосу.
+1
Чем меня всегда отпугивает башорг, так наличием большого количества бордеров. Так же как и forumBB. Прямо не знаю, что за таблицо-мания.
Так же, как все начинающие дизайнеры пишут красными буквами по темно-синему фону, так же все программисты, решившие самостоятельно сделать дизайн, обязательно поместят комментарий в отдельную ячейку таблицы, с огромными отступами, с серо-синим фоном, с грубым бордером.
Тоже самое в формате шортика:
− Дизайн легко угробить, поместив контент в таблицу в таблицу в таблицу в таблицу.
Так же, как все начинающие дизайнеры пишут красными буквами по темно-синему фону, так же все программисты, решившие самостоятельно сделать дизайн, обязательно поместят комментарий в отдельную ячейку таблицы, с огромными отступами, с серо-синим фоном, с грубым бордером.
Тоже самое в формате шортика:
− Дизайн легко угробить, поместив контент в таблицу в таблицу в таблицу в таблицу.
+1
— Надо поместить в див в див в див в див в спан в спан в спан в спан и дизайн заживёт новой жизнью? :)
+5
Пофиксили внешний вид :)
0
Я бы добавил, что еще бы правильнее было вообще убрать Apache, поставить php-fpm как FastCGI для NGINX, так же поставить eAccelerator.
0
Было бы неплохо выделать кнопку «Нравится» после нажатия, тыкал на нее несколько раз, не мог понять, учтен мой голос или нет.
0
На сколько подскочила посещаемость сайта после публикации сего топика?
+1
Использование @ перед функциями, die() на бою, работа через библиотеку mysql, неэкранированные переменные в запросе, да и просто мусор в коде:
И все это в очень маленьком кусочке кода. А еще удивляемся, почему так предвзято относятся к php-кодерам.
$quotesonpage = '';
....
$quotesonpage = array();
И все это в очень маленьком кусочке кода. А еще удивляемся, почему так предвзято относятся к php-кодерам.
+3
что по поводу базы? как устроено голосование и его хранение? при каждом плюсе/минусе базу апдейте? что с оптимизацией базы и запросов?
какая версия php стоит? обновляйтесь до последней, там постоянно улучшают работу с памятью. переходите на более современные расширения работы с базой (mysqli)
какая версия php стоит? обновляйтесь до последней, там постоянно улучшают работу с памятью. переходите на более современные расширения работы с базой (mysqli)
0
про хардверно-софтверную состовляющую подготовились неплохо.
а смешных шуток для хабраэффектатм подготовить не могли?
а смешных шуток для хабраэффектатм подготовить не могли?
0
Только ограничение нужно было делать 140 символов, чтобы в твиттер удобнее было кидать )
+2
Если быстро много раз подряд нажать на кнопку НРАВИТСЯ, то прибавится не 1, а сразу несколько голосов (ну правильно: пока в базу данных попадет строчка {мой IP, id шортика за который я уже проголосовал}), пройдет не одна возможность опять послать запрос на сервер. Может быть временно программно на стороне клиента скрывать кнопку «Нравится», скажем, на N секунд?
0
>> свежие шортики будут появляться на сайте с задержкой в полчаса, но это не страшно
Просто очищайте мемкэш для главной при вставке и обновлении.
Посмотрите решение в LiveStreet: за кэширование и взаимодействие с маппером БД отвечает модуль. При вставке и обновлении он чистит зависимые кэши или удаляет по тэгам. При чтении сначала смотрит кэш. Например, 232 строка.
Надеюсь код в Вашем проекте не настолько низкоуровневый как в примерах? :)
Просто очищайте мемкэш для главной при вставке и обновлении.
Посмотрите решение в LiveStreet: за кэширование и взаимодействие с маппером БД отвечает модуль. При вставке и обновлении он чистит зависимые кэши или удаляет по тэгам. При чтении сначала смотрит кэш. Например, 232 строка.
Надеюсь код в Вашем проекте не настолько низкоуровневый как в примерах? :)
0
Поздравляю, сайт работает стабильно, чего не скажешь о гугловском рекламном сервере: «Соединение с сервером googleads.g.doubleclick.net сбой (Сервер не отвечает.) — это вместо нижнего баннера
+1
UFO just landed and posted this here
Сайт — просто готовый монолог «А знаете ли вы, что?..» для Задорнова.
+2
Зашел на главную, первый шортик (аж мутит от этого названия, произнося его, кажется, что ты попал в какую-то секту)
Очень смешно!
Но дальше лучше:
Пафосные лоси ^__^ — о-о-о-ок!
Автор, скажи честно, ты сам придумываешь этишортики шутки?
Иван Иванович Иванов никогда не заполняет никакие бланки. Он просто тупо крадёт образец...
Очень смешно!
Но дальше лучше:
Пафосные лоси не лижут соль без текилы.
Пафосные лоси ^__^ — о-о-о-ок!
Продам хамелеона синего. Нет, красного. Нет, зеленого. Блин. Круто. Нет, не продам.
Автор, скажи честно, ты сам придумываешь эти
-4
Интересно, а как происходит отбор шуток? Вручную, что ли?
Пример с шортиков:
Оригинал с башорга:
Пример с шортиков:
www: Вся история женской моды — это история борьбы климата, морали и гигиены с желанием женщины ходить голой.
Оригинал с башорга:
www: Вся история женской моды — это история борьбы климата, морали и гигиены с желанием женщины ходить голой.
xxx: да и пусть бы голыми ходили, жалко что ли
yyy: а если твоя девушка будет ходить по улицам голой, как тебе это понравится?
zzz: Ну так пусть свободные ходят голыми, а занятые — одетыми. Сразу избавит мир от многих проблем
+2
отлично, теперь (в отличие от башорга) в гуглридере не надо кликать на развернуть, один клик в сутки — «отметить как прочитанное» (это я про длину сообщений).
0
Название «шортики» действительно не самое удачное. «Шорты» и то звучит лучше, но все равно непривычно.
Но смешные цитаты есть. Удачи в дальнейшем развитии!
Но смешные цитаты есть. Удачи в дальнейшем развитии!
-2
Хороший сайт получился, залип на нём, спасибо)
Каменты не читал, приделайте кнопочку для контактика, чтоб цитаты воровать.
Каменты не читал, приделайте кнопочку для контактика, чтоб цитаты воровать.
0
А вообще, прочитав заголовок, ожидал увидеть что-то подобное в дизайне главной страницы:


+5
жестко ограниченная 255 символами
Почему не 140? :)
0
«Разумеется, свежие шортики будут появляться на сайте с задержкой в полчаса, но это не страшн»
Проблема решается теггированием. Хоть memcached и не поддерживает теггирование средствами своего api, реализовать собственный класс, наследующий memcached с методами t_set, t_get не займет много времени.
Хорошая статья по теме: www.smira.ru/2008/10/29/web-caching-memcached-5/
Проблема решается теггированием. Хоть memcached и не поддерживает теггирование средствами своего api, реализовать собственный класс, наследующий memcached с методами t_set, t_get не займет много времени.
Хорошая статья по теме: www.smira.ru/2008/10/29/web-caching-memcached-5/
0
>Выключаем ExtendedStatus (добавляет 1 или 2 системных вызова на каждый реквест):
Экономия на спичках. Не нужно.
>Timeout 10
Нет смысла для Apache за nginx. Вообще, все таймауты стоит держать в одном месте. Держите их в nginx.
>KeepAlive On KeepAliveTimeout 5
Нет смысла. А в будущих версиях nginx это вам без проблем положит бэкэнд.
>Добавляем мемкеш
Тут вообще листовая жесть. Во-первых, будет гонка базы при протухании кэша. Во-вторых, кэш надо уметь инвалидировать. Вы это делать не умеете, потому у вас задержки.
Экономия на спичках. Не нужно.
>Timeout 10
Нет смысла для Apache за nginx. Вообще, все таймауты стоит держать в одном месте. Держите их в nginx.
>KeepAlive On KeepAliveTimeout 5
Нет смысла. А в будущих версиях nginx это вам без проблем положит бэкэнд.
>Добавляем мемкеш
Тут вообще листовая жесть. Во-первых, будет гонка базы при протухании кэша. Во-вторых, кэш надо уметь инвалидировать. Вы это делать не умеете, потому у вас задержки.
+4
У меня гугловская кнопка +1 очень затормаживает загрузку страницы. Не могли бы вы эти кнопки убрать в js, уже после загрузки страницы?
0
Спасибо, шутки попадаются классные. А чем отличаются списки «лучшие» и «по рейтингу»?
0
Да, еще было бы классно сделать функцию «показать, начиная с даты» — отсортированные по рейтингу шутки, начиная с определенной даты (чтобы одно и то же два раза не читать). RSS-ридер не предлагать — все подряд читать не хочется, а вот раз в недельку заходить и читать лучшее было бы удобно.
0
а нельзя ли сделать трансляцию в twitter? настроить twitterfeed.com/ 5 минут займет
+1
Защита от накрутки голосований через куки — это совсем несерьезно.
1) Их легко удалить
2) Суммарный объем кук ограничен — значит через какое-то кол-во голосований они сами начнут исчезать. Особенно актуально потому что вы используете длинные имена кук
1) Их легко удалить
2) Суммарный объем кук ограничен — значит через какое-то кол-во голосований они сами начнут исчезать. Особенно актуально потому что вы используете длинные имена кук
0
UFO just landed and posted this here
За сайтом вообще кто-нибудь следит? Откуда там поток несвежих, неактуальных шуток?
Например, вот эта шутка shortiki.com/shortik.php?shortik=4893, датированная 25 октября была актуальна 12 марта, когда вск и пнд были рабочими днями. После 12 марта уже никто и не знает в чем смысл этого шортика.
Чем думал модератор, когда апрувил?
Например, вот эта шутка shortiki.com/shortik.php?shortik=4893, датированная 25 октября была актуальна 12 марта, когда вск и пнд были рабочими днями. После 12 марта уже никто и не знает в чем смысл этого шортика.
Чем думал модератор, когда апрувил?
0
Only those users with full accounts are able to leave comments. Log in, please.
Шортики — короткие и смешные, или как мы готовили сайт к Хабраэффекту