diff --git a/.obsidian/plugins/home-tab/data.json b/.obsidian/plugins/home-tab/data.json index 52571865..7f2dc60f 100644 --- a/.obsidian/plugins/home-tab/data.json +++ b/.obsidian/plugins/home-tab/data.json @@ -25,23 +25,23 @@ "recentFilesStore": [ { "filepath": "_inbox/Кэширование.md", - "timestamp": 1718642518949 + "timestamp": 1718642818036 + }, + { + "filepath": "_inbox/Memcached.md", + "timestamp": 1718642691133 }, { "filepath": "_inbox/Redis.md", - "timestamp": 1718642511151 + "timestamp": 1718642620465 }, { "filepath": "_inbox/Кэширование на сервере.md", - "timestamp": 1718642458498 + "timestamp": 1718642541228 }, { "filepath": "_inbox/Кэширование на стороне Nginx.md", "timestamp": 1718642237759 - }, - { - "filepath": "_inbox/Кэширование на стороне клиента Nginx.md", - "timestamp": 1718642233979 } ], "starredFileStore": [], diff --git a/.obsidian/plugins/recent-files-obsidian/data.json b/.obsidian/plugins/recent-files-obsidian/data.json index 0bbd3f0c..9252d935 100644 --- a/.obsidian/plugins/recent-files-obsidian/data.json +++ b/.obsidian/plugins/recent-files-obsidian/data.json @@ -4,6 +4,10 @@ "basename": "Кэширование", "path": "_inbox/Кэширование.md" }, + { + "basename": "Memcached", + "path": "_inbox/Memcached.md" + }, { "basename": "Redis", "path": "_inbox/Redis.md" @@ -48,10 +52,6 @@ "basename": "Least Recently Used", "path": "_inbox/Least Recently Used.md" }, - { - "basename": "Memcached", - "path": "_inbox/Memcached.md" - }, { "basename": "Generational Collection", "path": "knowledge/dev/java/gc/Generational Collection.md" diff --git a/_inbox/Memcached.md b/_inbox/Memcached.md index 56d1e5d4..bae96e81 100644 --- a/_inbox/Memcached.md +++ b/_inbox/Memcached.md @@ -9,8 +9,17 @@ zero-link: parents: linked: - "[[Кэширование]]" + - "[[Redis]]" link: https://highload.guide/blog/web-caching-memcached.html --- +## Тезисы +- Проще конфигурировать чем [Redis](Redis.md) +- Многопоточный +- Для кластерных конфигураций есть moxy +- Работает с [Tarantool](Tarantool.md) + +*** + Memcached представляет собой огромную хэш-таблицу в оперативной памяти, доступную по сетевому протоколу. Он обеспечивает сервис по хранению значений, ассоциированных с ключами. Доступ к хэшу мы получаем через простой сетевой протокол, клиентом может выступать программа, написанная на произвольном языке программирования (существуют клиенты для C/C++, PHP, Perl, Java и т.п.) Самые простые операции – получить значение указанного ключа (get), установить значение ключа (set) и удалить ключ (del). Для реализации цепочки атомарных операций (при условии конкурентного доступа к memcached со стороны параллельных процессов) используются дополнительные операции: инкремент/декремент значения ключа (incr/decr), дописать данные к значению ключа в начало или в конец (append/prepend), атомарная связка получения/установки значения (gets/cas) и другие. diff --git a/_inbox/Redis.md b/_inbox/Redis.md index 005f69fd..9e85a0b1 100644 --- a/_inbox/Redis.md +++ b/_inbox/Redis.md @@ -8,5 +8,15 @@ zero-link: - "[[00 Разработка]]" parents: linked: + - "[[Memcached]]" --- -Работает с использованием [кооперативной многозадачности](Кооперативная%20многозадачность.md). \ No newline at end of file +Работает с использованием [кооперативной многозадачности](Кооперативная%20многозадачность.md). + +Особенности: +- Большое количество команд +- Встроенный lua +- Имеет сложные типы данных +- Есть персистентный режим +- Кластеризуется +- Сложный в настройках +- Однопоточный \ No newline at end of file diff --git a/_inbox/Кэширование.md b/_inbox/Кэширование.md index 0c756c35..48be43a5 100644 --- a/_inbox/Кэширование.md +++ b/_inbox/Кэширование.md @@ -30,6 +30,9 @@ linked: - [Кэширование на стороне Nginx](Кэширование%20на%20стороне%20Nginx.md) - [Кэширование на стороне клиента Nginx](Кэширование%20на%20стороне%20клиента%20Nginx.md) - [Кэширование в браузере](Кэширование%20в%20браузере.md) + +Виды кэширования: +- Сквозное. Вс ## Ключ кэширования Ключ кэширования должен обладать следующими свойствами: - При изменении параметров выборки, которую мы кэшируем, ключ кэширования должен изменяться (чтобы с новыми параметрами мы не «попали» в старый кэш).