Skip to content

Commit

Permalink
Добавлена ссылка на публикацию о кэшировании
Browse files Browse the repository at this point in the history
  • Loading branch information
matyushkin committed Nov 17, 2020
1 parent e0e4b33 commit 20dd87b
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 6 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
Внутри рубрик статьи расположены преимущественно в порядке от наиболее новых к более старым. Жирным выделены наиболее проработанные публикации:

### Python
- 🧩 [Кэширование в Python: алгоритм LRU](https://proglib.io/p/keshirovanie-v-python-algoritm-lru-2020-11-17) ([Jupyter](https://github.com/matyushkin/lessons/blob/master/caching/lru-cache.ipynb)) ([ист.](https://realpython.com/lru-cache-python/))
- 🗄️ [Управление данными с помощью Python, SQLite и SQLAlchemy
](https://proglib.io/p/upravlenie-dannymi-s-pomoshchyu-python-sqlite-i-sqlalchemy-2020-10-21) ([ист.](https://realpython.com/python-sqlite-sqlalchemy/))
- 🤹 [Введение в объектно-ориентированное программирование (ООП) на Python](https://proglib.io/p/vvedenie-v-obektno-orientirovannoe-programmirovanie-oop-na-python-2020-07-23) ([Jupyter](https://github.com/matyushkin/lessons/blob/master/oop/oop.ipynb), [Colab](https://colab.research.google.com/github/matyushkin/lessons/blob/master/oop/oop.ipynb)) ([ист.](https://realpython.com/python3-object-oriented-programming/))
Expand Down
13 changes: 7 additions & 6 deletions caching/lru-cache.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 16,
"metadata": {},
"outputs": [
{
Expand All @@ -49,17 +49,18 @@
{
"data": {
"text/plain": [
"'\\n\\n\\n\\n<!DOCTYPE html>\\n<html lang=\"ru\" >\\n\\n <head>\\n <meta charset=\"utf-8\" />\\n <meta name=\"viewport\" content=\"width=device-width,minimum-scale=1,initial-scale=1\">\\n <meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\">\\n\\n <meta name=\"theme-color\" content=\"#ffffff\">\\n\\n <meta name=\"centrifugo-url\" content=\"wss://proglib.io/centrifugo/connection/websocket\">\\n <meta name=\"centrifugo-user\" content=\"\">\\n <meta name=\"centrifugo-token\" content=\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIiLCJleHAiOjE2MDU1NzQ0OTh9.K2zcZi0FXwpj22EZeVXMiL3CADWYVsMk4-g2tu0E4P4\">\\n \\n \\t\\n\\t\\t\\t\\n\\n\\t<title>Всё, что нужно знать о декораторах Python\\n\\t</title>\\n\\t<meta name=\"description\" content=\"Содержательный туториал об устройстве, назначении и практическом использовании декораторов Python с многочисленными примерами программного кода.\"/> <meta\\n\\tname=\"keywords\" content=\"python, decorators, декоратор, декораторы, functools'"
"'\\n\\n\\n\\n<!DOCTYPE html>\\n<html lang=\"ru\" >\\n\\n <head>\\n <meta charset=\"utf-8\" />\\n <meta name=\"viewport\" content=\"width=device-width,minimum-scale=1,initial-scale=1\">\\n <meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\">\\n\\n <meta name=\"theme-color\" content=\"#ffffff\">\\n\\n <meta name=\"centrifugo-url\" content=\"wss://proglib.io/centrifugo/connection/websocket\">\\n <meta name=\"centrifugo-user\" content=\"\">\\n <meta name=\"centrifugo-token\" content=\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIiLCJleHAiOjE2MDU1NzQ5NTF9.P7Cu55tyhFNyHQAGnz_L5XGvEWgnsurirII4jLoIrmM\">\\n \\n \\t\\n\\t\\t\\t\\n\\n\\t<title>Всё, что нужно знать о декораторах Python\\n\\t</title>\\n\\t<meta name=\"description\" content=\"Содержательный туториал об устройстве, назначении и практическом использовании декораторов Python с многочисленными примерами программного кода.\"/> <meta\\n\\tname=\"keywords\" content=\"python, decorators, декоратор, декораторы, functools'"
]
},
"execution_count": 1,
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import requests\n",
"\n",
"link = \"https://proglib.io/p/vse-chto-nuzhno-znat-o-dekoratorah-python-2020-05-09\"\n",
"cache = dict()\n",
"\n",
"def get_article_from_server(url):\n",
Expand All @@ -74,8 +75,8 @@
"\n",
" return cache[url]\n",
"\n",
"get_article(\"https://proglib.io/p/vse-chto-nuzhno-znat-o-dekoratorah-python-2020-05-09\")[:1000]\n",
"get_article(\"https://proglib.io/p/vse-chto-nuzhno-znat-o-dekoratorah-python-2020-05-09\")[:1000]"
"get_article(link)[:1000]\n",
"get_article(link)[:1000]"
]
},
{
Expand Down Expand Up @@ -109,7 +110,7 @@
"\n",
"Чтобы обойти эту проблему, нам нужна стратегия, которая позволит программе решить, какие статьи пора удалить. Существует несколько различных стратегий, которые можно использовать для удаления элементов из кэша и предотвращения превышения его максимального размера. Пять самых популярных перечислены в таблице.\n",
"\n",
"Стратегия | Какую запись удаляем | Эти записи чаще других используют повторно\n",
"Стратегия | Какую запись удаляем | Эти записи чаще других используются повторно\n",
"--- | --- | ---\n",
"First-In/First-Out (FIFO) | Самая старая | Новые\n",
"Last-In/First-Out (LIFO) | Самая недавняя | Старые\n",
Expand Down

0 comments on commit 20dd87b

Please sign in to comment.