diff --git a/.obsidian/plugins/home-tab/data.json b/.obsidian/plugins/home-tab/data.json index 19e79f48..efc939ae 100644 --- a/.obsidian/plugins/home-tab/data.json +++ b/.obsidian/plugins/home-tab/data.json @@ -23,13 +23,17 @@ "markdownOnly": false, "unresolvedLinks": false, "recentFilesStore": [ + { + "filepath": "_inbox/Принцип локальности.md", + "timestamp": 1718639370931 + }, { "filepath": "_inbox/Кэширование.md", - "timestamp": 1718639203388 + "timestamp": 1718639363870 }, { "filepath": "_inbox/Redis.md", - "timestamp": 1718639199908 + "timestamp": 1718639336820 }, { "filepath": "wiki/zero/00 HighLoad.md", @@ -38,10 +42,6 @@ { "filepath": "knowledge/human/Стресс.md", "timestamp": 1718638580710 - }, - { - "filepath": "_inbox/Репликация в MySQL.md", - "timestamp": 1718638377453 } ], "starredFileStore": [], diff --git a/.obsidian/plugins/recent-files-obsidian/data.json b/.obsidian/plugins/recent-files-obsidian/data.json index 88cd4985..90ac10a1 100644 --- a/.obsidian/plugins/recent-files-obsidian/data.json +++ b/.obsidian/plugins/recent-files-obsidian/data.json @@ -1,5 +1,9 @@ { "recentFiles": [ + { + "basename": "Принцип локальности", + "path": "_inbox/Принцип локальности.md" + }, { "basename": "Кэширование", "path": "_inbox/Кэширование.md" @@ -195,10 +199,6 @@ { "basename": "Ударение", "path": "_inbox/Ударение.md" - }, - { - "basename": "Git", - "path": "knowledge/dev/Git.md" } ], "omittedPaths": [], diff --git a/_inbox/Кэширование.md b/_inbox/Кэширование.md index 95eeea2b..40efa003 100644 --- a/_inbox/Кэширование.md +++ b/_inbox/Кэширование.md @@ -14,6 +14,10 @@ linked: Ускорить сложные запросы может кэширование: мы помещаем результат вычислений в некоторое хранилище (например, [Memcached](Memcached.md) или [Redis](Redis.md)), которое обладает отличными характеристиками по времени доступа к информации. Теперь вместо обращений к медленным, сложным и тяжелым backend’ам нам достаточно выполнить запрос к быстрому кэшу. +![](Pasted%20image%2020240617184722.png) + +Кэширование основывается на [принципе локальности](Принцип%20локальности.md). + ==Системы используемые для кэширования обычно не являются надежными, так что не следует хранить только там какие-то важные данные.== Данные можно разделить на несколько категорий: - «**Можно потерять**». К этой категории относятся кэши выборок из базы данных. Потеря таких ключей не так страшна, потому что мы можем легко восстановить их значения, обратившись заново к backend’у. Однако частые потери кэшей приводят к излишним обращениям к БД. - «**Не хотелось бы потерять**». Здесь можно упомянуть счетчики посетителей сайта, просмотров ресурсов и т.п. Хоть и восстановить эти значения иногда напрямую невозможно, но значения этих ключей имеют ограниченный по времени смысл: через несколько минут их значение уже неактуально, и будет рассчитано заново. diff --git a/_inbox/Принцип локальности.md b/_inbox/Принцип локальности.md index 5b150dbc..f6fc69b3 100644 --- a/_inbox/Принцип локальности.md +++ b/_inbox/Принцип локальности.md @@ -1,5 +1,6 @@ --- -aliases: +aliases: + - принципе локальности tags: - зрелость/🌱 date: @@ -9,4 +10,9 @@ zero-link: parents: linked: --- -Программе свойственно в определенный промежуток времени работать с некоторым подмножеством данных из общего набора. В случае оперативной памяти это означает, что если программа работает с данными, находящимися по адресу 100, то с большей степенью вероятности следующее обращение будет по адресу 101, 102 и т.п., а не по адресу 10000, например. То же самое с жестким диском: его буфер наполняется данными из областей, соседних по отношению к последним прочитанным секторам, если бы наши программы работали в один момент времени не с некоторым относительно небольшим набором файлов, а со всем содержимым жесткого диска, буфер жесткого диска был бы бессмысленным. Буфер автомагнитолы совершает упреждающее чтение с диска следующих минут музыки потому, что мы, скорее всего, будем слушать музыкальный файл последовательно, а не перескакивать по набору музыки и т.п. \ No newline at end of file +Программе свойственно в определенный промежуток времени работать с некоторым небольшим подмножеством данных из всего набора. + +Примеры: +- Для чатов - последние сообщения +- Для новостей - последние новости +- Для сервиса такси - активные заказы \ No newline at end of file diff --git a/meta/files/Pasted image 20240617184722.png b/meta/files/Pasted image 20240617184722.png new file mode 100644 index 00000000..90cd28a2 Binary files /dev/null and b/meta/files/Pasted image 20240617184722.png differ