chelnovosti_ru 2 Опубликовано: 15 августа 2022 Рассказать Опубликовано: 15 августа 2022 Здравствуйте, есть кто знатоки по Redis?) С 4 версии redis может удалять и обновлять кеш асинхронно, но после настройки конфига, DLE как и удаляла при запросе, так и продолжает... Как заставить, что подкрутить надо в DLE, чтобы кеш асинхронно обновлялся... А то сейчас, redis кеш по факту ничем не отличает от файлового Новость добавили, весь кеш слетает в онлайне, юзеру надо первое открытие сайта по 2 сек ждать... Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 16 августа 2022 Рассказать Опубликовано: 16 августа 2022 Вообще то DLE и пишет асинхронно кеш в Redis и удаляет также асинхронно. А по 2 секунды первое открытие сайта у вас совершенно не по этой причине и работой кеша и асинхронностью точно не связано. Как правило такое ожидание связано с тем что у вас есть подключения к чужим внешним серверам, например RSS информеры, какие то другие модули, и какой то из этих сайтов очень медленный и медленно отдает контент. Поэтому после сброса кеша идет долгое получения новой информации чтобы опять записать ее в кеш. Поэтому источник проблемы нужно не в кеше искать Цитата Ссылка на сообщение Поделиться на других сайтах
chelnovosti_ru 2 Опубликовано: 16 августа 2022 Рассказать Опубликовано: 16 августа 2022 Автор Я пробовал эксперименты, сами новости хорошо открываются при втором открытии и без кеша, как я понял, это благодаря InnoDB буеферу, который кеширует. Но вот в категориях, где много новостей идет долгая выборка... Скажем, в категории 1, 100к новостей, в категории 2 30к новостей (цифры с потолка), так вот первая категория без кеша плоха открывается. Вторая категория гораздо быстрее... В настройках DLE, отключил публикацию новостей на будущую даты и так далее, отключил подсчет новостей и прочее. Никаких плагинов и модулей нет... Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 16 августа 2022 Рассказать Опубликовано: 16 августа 2022 27 минут назад, chelnovosti_ru сказал: Я пробовал эксперименты, сами новости хорошо открываются при втором открытии и без кеша, как я понял, Неправильные у вас эксперименты. И даже при отключении кеша, кеш все равно существует и создается для некоторых обьектов. Соотвественно отключив кеш, его не будет для новостей, но для других обьектов, в том числе для информеров он будет в любом случае, и как следствие быстрое открытие второе, потому как после первого результат помещен в кеш. Кеш есть всегда, его можно выключить для новостей, но не для всего. 29 минут назад, chelnovosti_ru сказал: Скажем, в категории 1, 100к новостей, в категории 2 30к новостей (цифры с потолка), так вот первая категория без кеша плоха открывается. Вторая категория гораздо быстрее... Конечно, скорость работы будет зависеть от количества. 28 минут назад, chelnovosti_ru сказал: как я понял, это благодаря InnoDB буеферу, который кеширует Буфер InnoDB не имеет никакого отношения к системе кеширования. Цитата Ссылка на сообщение Поделиться на других сайтах
chelnovosti_ru 2 Опубликовано: 19 августа 2022 Рассказать Опубликовано: 19 августа 2022 Автор Все понял, спасибо... Но вот вопрос, ведь по факту, можно же сделать, чтобы обновление/удаление кеша, было фоновым? Сейчас это хоть и выполняется асинхронно, но юзеру в любом случае приходиться ждать, если обновляется кеш. Ну скажем, создался кеш категории, юзер зашел на сайта и буквально до захода, мы добавили новость. Что происходит, старый кеш удаляется и создается новый.... точнее, наоборот... В это время юзер получает информацию из БД. И от этого идет время ожидания, можно ли сделать, чтобы к примеру, пока создается в фоновом режиме кеш, юзеру отдавался старый кеш, а как только новый создаться, то уже и отдавать ему. Тогда все будет отлично, сайты будут летать:) И кеш будет с сотню раз эффективнее работать, нежели сейчас... Видел на других движках такую фичу... А то сейчас новость добавили, кеш весь слетел и пересоздается за ново, хоть и асинхронно, но толку, если юзеру приходиться ждать... Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 20 августа 2022 Рассказать Опубликовано: 20 августа 2022 8 часов назад, chelnovosti_ru сказал: Но вот вопрос, ведь по факту, можно же сделать, чтобы обновление/удаление кеша, было фоновым? Я вам написал еще первым сообщением: "Оно фоновое". 8 часов назад, chelnovosti_ru сказал: Сейчас это хоть и выполняется асинхронно, но юзеру в любом случае приходиться ждать, если обновляется кеш. Не ждет пользователь обновления кеша. Он ждет новой!!! информации у вас. 8 часов назад, chelnovosti_ru сказал: И от этого идет время ожидания, можно ли сделать, чтобы к примеру, пока создается в фоновом режиме кеш Нельзя так сделать, это не возможно в принципе, и нигде это так не работает. PHP не выполняется асинхронно, поэтому нет подобного. Redis может выполнять команды асинхронно, PHP интерпретатор работает последоватьно выполняя код. В любом случае будет ждать пользователь завершения работы PHP процесса. Неверно вы пытаетесь решить свою проблему. Ее нужно устранять быстрым получением информации, а не пытаться решить ее какими то непонятными обходными путями. 8 часов назад, chelnovosti_ru сказал: Видел на других движках такую фичу... Нет таких фич в других движках. Никакие движки не работают так с кешем. 8 часов назад, chelnovosti_ru сказал: А то сейчас новость добавили, кеш весь слетел и пересоздается за ново, хоть и асинхронно, но толку, если юзеру приходиться ждать... Не весь кеш удаляется, а только тот, который влияет на отображение контента в связи с новой информацией. Цитата Ссылка на сообщение Поделиться на других сайтах
chelnovosti_ru 2 Опубликовано: 26 августа 2022 Рассказать Опубликовано: 26 августа 2022 Автор Понял, спасибо за информацию... Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.