Посты с тэгом redis






Находки недели [5].

Я пропустил выпуск прошлой недели из-за своего дня рождения, поэтому далее ссылки за 2 недели.

Python

  1. Getting Started With Python inside PostgreSQL.
  2. Create your chatbot using Python NLTK.
  3. What is Public Key Cryptography?
  4. The mystery behind del() and why it works.
  5. Understanding Regression Error Metrics.
  6. Making an Unlimited Number of Requests with Python aiohttp + pypeln.


[Перевод - recovery mode ] Пишем собственный миниатюрный Redis-сервер на Python

На днях мне пришла в голову мысль, что было бы здорово написать простой Redis-подобный сервер баз данных. Хотя у меня значительный опыт работы с приложениями WSGI, сервер базы данных представил новый вызов и оказался хорошей практикой в процессе обучения работе с сокетами в Python. В этой статье расскажу, что я узнал в процессе исследования.

Читать дальше →


[Из песочницы] И снова о кешировании в Django

Для django уже есть множество библиотек для кеширования и они уже обсуждалось на хабре, но, к сожалению, проблемы с производительностью не решить добавлением строчки в INSTALLED_APPS. В библиотеках патчащих queryset кеш инвалидируется либо слишком часто, либо слишком редко и самое главное у программиста мало контроля за этим процессом. Можно написать инвалидацию вручную, но потребуется много кода, в котором легко допустить ошибку.

По этой причине я написал маленький проект, в котором при добавлении объекта в кеш можно указать зависимости, при изменении которых кеш будет автоматически инвалидирован.
Читать дальше →



[Из песочницы] И снова о кешировании в Django

Для django уже есть множество библиотек для кеширования и они уже обсуждалось на хабре, но, к сожалению, проблемы с производительностью не решить добавлением строчки в INSTALLED_APPS. В библиотеках патчащих queryset кеш инвалидируется либо слишком часто, либо слишком редко и самое главное у программиста мало контроля за этим процессом. Можно написать инвалидацию вручную, но потребуется много кода, в котором легко допустить ошибку.

По этой причине я написал маленький проект, в котором при добавлении объекта в кеш можно указать зависимости, при изменении которых кеш будет автоматически инвалидирован.
Читать дальше →



Centrifuge + Go = Centrifugo – harder, better, faster, stronger




В сентябре прошлого года была опубликована последняя статья о Центрифуге — сервере с открытым исходным кодом для обмена сообщениями в режиме реального времени. Теперь в списке хабов, в которые публикуется этот пост, присутствует Go. И неспроста, как можно понять уже из заголовка, Центрифуга была портирована с Python на Go — так появилась Centrifugo. О причинах миграции, о плюсах и минусах Go, а также о том, как эволюционировал проект с момента предыдущей публикации – читайте под катом.
Читать дальше →


[Из песочницы] История одного тестового задания


Некоторое время назад, листая просторы хабра, я наткнулся на вакансию «Python Backend Разработчик». В ней больше всего меня подкупило расположение офиса — он был рядом с домом, и я написал отклик. Ответ пришел быстро с вопросом о том, не готов ли я выполнить тестовое задание. Я ответил, что подумаю, если мне его пришлют. Письма с заданием не было недели две.

И вот, перед самыми майскими праздниками пришел ответ с тестовым заданием. Задание казалось простым, но я решил отказаться от дальнейшего общения вообще, так как почему-то за две недели порыв поиска новой работы прошел, да и праздники впереди. Однако в тот же день я заболел. Вполне себе серьезным насморком со всеми вытекающими. И на следующий день я решил попробовать забороть это тестовое задание и посмотреть, что из этого выйдет. И об этом мой рассказ.
Читать дальше →


Centrifuge — я больше не буду обновлять страницу перед отправкой комментария


Прошло некоторое время с тех пор, как я писал про Центрифугу в предыдущий раз. Произошло множество изменений за этот период. Многое из того, что было описано в ранних статьях (1, 2) кануло в лету, но суть и идея проекта остались прежними — это сервер рассылки real-time сообщений пользователям, подключенным из веб-браузера. Когда на вашем сайте возникает событие, о котором вам нужно моментально сообщить некоторым вашим пользователям, вы постите это событие в Центрифугу, а она, в свою очередь, отправляет его всем заинтересованным пользователям, подписанным на нужный канал. В самом простом виде это показано на схеме:



Flask authentication with Redis

Раз мы уже попробовали MongoDB, пора бы потихоньку переходить на сторону ЗЛА NoSQL и освоить Redis. Отличается он от MongoDB тем, что хранит данные в виде словаря. Но самая главная его особенность в том, что он хранит базу в оперативной памяти! Этим и объясняется скорость Redis. Ну, ради эксперимента мы рискнем и будем хранить там данные пользователей.

Я думаю, что в изучении любых вещей нужно всегда начинать с чего-то простого, поэтому мы не будем прописывать рендеринг страницы, а просто будем возвращать ответы на запросы. Поэтому и забудем про безопасность передаваемых паролей :D.

А пока создадим 2 пользователей и предположим, что у них одинаковые пароли. А что означают операторы GET и SET уже должны догадаться.*

А дописать код для маленького сервера совсем не сложно, учитывая что в Python уже есть удобный драйвер для подкл