diff --git a/.obsidian/plugins/home-tab/data.json b/.obsidian/plugins/home-tab/data.json index 48666e49..a20f111a 100644 --- a/.obsidian/plugins/home-tab/data.json +++ b/.obsidian/plugins/home-tab/data.json @@ -24,24 +24,24 @@ "unresolvedLinks": false, "recentFilesStore": [ { - "filepath": "_inbox/LSM дерево.md", - "timestamp": 1718690013544 + "filepath": "_inbox/Least Recently Used.md", + "timestamp": 1718690349183 }, { - "filepath": "_inbox/B-tree.md", - "timestamp": 1718690011423 + "filepath": "_inbox/Most Recently Used.md", + "timestamp": 1718690345433 }, { - "filepath": "_inbox/Принцип локальности.md", - "timestamp": 1718689824661 + "filepath": "Инвалидация кэша.md", + "timestamp": 1718690233629 }, { "filepath": "_inbox/Кэширование.md", - "timestamp": 1718689745911 + "timestamp": 1718690151207 }, { - "filepath": "_inbox/Кэширование на стороне браузера.md", - "timestamp": 1718689727983 + "filepath": "_inbox/LSM дерево.md", + "timestamp": 1718690013544 } ], "bookmarkedFileStore": [], diff --git a/.obsidian/plugins/recent-files-obsidian/data.json b/.obsidian/plugins/recent-files-obsidian/data.json index 91ebd104..11a2c15a 100644 --- a/.obsidian/plugins/recent-files-obsidian/data.json +++ b/.obsidian/plugins/recent-files-obsidian/data.json @@ -1,5 +1,21 @@ { "recentFiles": [ + { + "basename": "Least Recently Used", + "path": "_inbox/Least Recently Used.md" + }, + { + "basename": "Most Recently Used", + "path": "_inbox/Most Recently Used.md" + }, + { + "basename": "Инвалидация кэша", + "path": "Инвалидация кэша.md" + }, + { + "basename": "Кэширование", + "path": "_inbox/Кэширование.md" + }, { "basename": "LSM дерево", "path": "_inbox/LSM дерево.md" @@ -12,10 +28,6 @@ "basename": "Принцип локальности", "path": "_inbox/Принцип локальности.md" }, - { - "basename": "Кэширование", - "path": "_inbox/Кэширование.md" - }, { "basename": "Кэширование на стороне браузера", "path": "_inbox/Кэширование на стороне браузера.md" @@ -24,10 +36,6 @@ "basename": "Кэширование на стороне клиента Nginx", "path": "_inbox/Кэширование на стороне клиента Nginx.md" }, - { - "basename": "Инвалидация кэша", - "path": "Инвалидация кэша.md" - }, { "basename": "Cache miss", "path": "Cache miss.md" @@ -116,14 +124,6 @@ "basename": "Last Frequently Used", "path": "_inbox/Last Frequently Used.md" }, - { - "basename": "Most Recently Used", - "path": "_inbox/Most Recently Used.md" - }, - { - "basename": "Least Recently Used", - "path": "_inbox/Least Recently Used.md" - }, { "basename": "Generational Collection", "path": "knowledge/dev/java/gc/Generational Collection.md" diff --git a/_inbox/Least Recently Used.md b/_inbox/Least Recently Used.md index a20b04f3..dd726684 100644 --- a/_inbox/Least Recently Used.md +++ b/_inbox/Least Recently Used.md @@ -18,15 +18,15 @@ LRU (Least Recently Used) — это алгоритм управления кэ 1. **Отслеживание использования**: Каждый элемент в кэше имеет метку времени или счетчик, который обновляется каждый раз, когда элемент используется. 2. **Удаление устаревших элементов**: Когда необходимо освободить место в кэше для нового элемента, удаляется элемент с наименьшим значением метки времени или счетчика, то есть наименее недавно использованный элемент. -**Преимущества LRU**: +**Преимущества**: - Эффективное управление памятью. - Простота реализации и понятная логика работы. -**Недостатки LRU**: +**Недостатки**: - Высокие накладные расходы на обновление меток времени или счетчиков. - Возможность неэффективной работы в некоторых специфических случаях, когда часто используемые элементы могут вытесняться из кэша. -Примеры использования LRU: +**Примеры использования:** - Кэширование страниц в веб-браузерах. - Управление оперативной памятью в операционных системах. - Кэширование данных в базах данных и других системах хранения. \ No newline at end of file diff --git a/_inbox/Most Recently Used.md b/_inbox/Most Recently Used.md index 78c9055c..6dd7ea90 100644 --- a/_inbox/Most Recently Used.md +++ b/_inbox/Most Recently Used.md @@ -12,4 +12,8 @@ parents: linked: - "[[Least Recently Used]]" --- -Наименее редко используемые данные вытесняются \ No newline at end of file +Наименее редко используемые данные вытесняются + +**Недостатки**: + +**Примеры использования:** \ No newline at end of file diff --git a/_inbox/Кэширование.md b/_inbox/Кэширование.md index 58df18a1..5f5bc9f4 100644 --- a/_inbox/Кэширование.md +++ b/_inbox/Кэширование.md @@ -19,6 +19,8 @@ linked: Кэширование основывается на [принципе локальности](Принцип%20локальности.md). +Чаще всего реализуется на основе хэш-таблиц. + ==Системы используемые для кэширования обычно не являются надежными, так что не следует хранить только там какие-то важные данные.== Данные можно разделить на несколько категорий: - «**Можно потерять**». К этой категории относятся кэши выборок из базы данных. Потеря таких ключей не так страшна, потому что мы можем легко восстановить их значения, обратившись заново к backend’у. Однако частые потери кэшей приводят к излишним обращениям к БД. - «**Не хотелось бы потерять**». Здесь можно упомянуть счетчики посетителей сайта, просмотров ресурсов и т.п. Хоть и восстановить эти значения иногда напрямую невозможно, но значения этих ключей имеют ограниченный по времени смысл: через несколько минут их значение уже неактуально, и будет рассчитано заново. diff --git a/Инвалидация кэша.md b/Инвалидация кэша.md index 87746113..0272282d 100644 --- a/Инвалидация кэша.md +++ b/Инвалидация кэша.md @@ -26,7 +26,7 @@ linked: - Опасно из-за риска мгновенной инвалидации - Алгоритмы вытеснения -Алгоритмы вытеснения: +**Алгоритмы вытеснения:** - Алгоритм Белади. Несуществующий идеальный алгоритм. Храним только нужную информацию, не нужную не храним. - [Least Recently Used](Least%20Recently%20Used.md) - [Most Recently Used](Most%20Recently%20Used.md)