Добро пожаловать в базу знаний

Кэш и кэширование

Кэш - это совокупность временных  или часто используемые копий файлов, а также специально отведенное место (высокоскоростное буферное хранилище) в память программы или устройства для быстрого, оперативного доступа к этим данным.

Кэширование – способ хранения данных как можно ближе к месту их использования.

Виды кэша и способы их устранения

Кэш — это память программы или устройства, в которой сохраняются временные или часто используемые файлы для быстрого доступа к ним. Если при заходте…

Кэш — это память программы или устройства, в которой сохраняются временные или часто используемые файлы для быстрого доступа к ним.

Если при заходте на сайт внесенные изменения никак не отображаются, то это означает, что данные закешировались.

Ниже рассмотрены разные виды кеша и способы их устранения 

Кэш Браузера
На примере Chrome, Yandex.Браузера
CTRL+SHift+Del - Очистить изображения и другие файлы в кеше
или
CTRL+F5 - нажать и удерживать пару секунд пока не обновится страница с сайтом
или
перейти на сайт в режиме "Инкогнито"
или
зайти на сайт с другого браузера

Кеш Мобильной версии браузера: Настройки -> Приложения -> Выбираем браузер -> Память -> Очистить кеш
Кроме кеша можно очистить историю и куки  -> https://vk.com/@-29173255-kak-pochistit-kesh-kuki-nastroiki-saitov-istoriu-v-mobilnoi 

Кэш CMS

На примере админки Joomla:
Система -> Очистка кэша -> очистить кеш или очистить устаревший кеш

Способы очистки кэша в разных CMS описаны -> тут

Кэш БД
В phpmyadmin выполнить:
FLUSH QUERY CACHE; - производится дефрагментация кэша запросов, чтобы эффективнее использовать его память. Эта команда не удаляет запросы из кэша, как команда RESET QUERY CACHE.
RESET QUERY CACHE; - удаляет запросы из кэша - не желательно, так как кеш наоборот создан ускорить запросы.

Кэш Cloudflare
В панели Cloudflare: Caching -> Configuration -> «Purge Everything»


Кэш DNS
В коммандной строке выполнить:
ipconfig /displaydns - печатает содержимое локального кеша DNS
ipconfig /flushdns - cтирает содержимое локального кеша DNS

Можно попробовать принудительно добавить ip сайта в hosts, затем незабыть убрать  согласно -> инструкции

Кэш роутера
Дождитесь самостоятельного сброса кеша, а пока зайдите с мобильного устройства (не по wi-fi), либо выполнить в коммандной строке:
ipconfig /release - прекращает любые активные соединения TCP/IP во всех сетевых адаптерах и освобождает эти IP-адреса для использования другими приложениями;
ipconfig /renew -повторно устанавливает соединения TCP/IP во всех сетевых адаптерах;
Перезагрузить роутер.

Кэш на уровне провайдеров
Дождаться очистки.

Информация полезна?
0

Ускорение времени загрузки за счет сжатия и кэширования файлов

Пример правил сжатия и кэширования   #Сжатие <ifModule mod_deflate.c>AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript</ifModule> #Кэширование…

Пример правил сжатия и кэширования

 

#Сжатие

<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>

#Кэширование

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>

# Cache-Control
<ifModule mod_headers.c>
# 30 дней
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
# 30 дней
<filesMatch "\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
# 1 день
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=172800, private, must-revalidate"
</filesMatch>
</ifModule>

 

Правила сжатия

Сжимать можно файлы любого типа.

Например, для сжатия HTML-файлов в .htaccess добавьте код:

AddOutputFilterByType DEFLATE text/html

Для сжатия текстовых файлов используйте:

AddOutputFilterByType DEFLATE text/plain

Вы также можете сжать JavaScript или включить сжатие для других различных типов файлов командами:

AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml

Кроме того, вы можете сжать все ваши JavaScript, HTML и CSS файлы при помощи GZIP. В современных версиях Apache gzip включается через mod_deflate . Для этого используйте следующий код:

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

Кроме того, можно сочетать типы файлов, указывая их одной строкой:

<ifModule mod_deflate.c>

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript

</ifModule>

 

Почему правила кэширования и сжатия, добавленные в .htaccess, не работают ?

Указанные в правилах расширения обрабатываются по умолчанию web-сервером Nginx.

gzip-cache1.jpg

Правила, прописанные в .htaccess используются для web-сервера Apache, соответственно, не работают, пока не будут убраны расширения из nginx.

gzip-cache2.jpg

Если Ваш сайт размещен на виртуальном хостинге, то для отключения статики от nginx напишите запрос в Центр поддержки с указанием userID и именем домена.

Информация полезна?
0