1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/ld-Py3Cache

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
Readme.md

Py3Cache

Введение

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

Py3Cache — это версия Python для фреймворка двухуровневого кэша J2Cache. Если вы хотите узнать больше о проблемах, которые решает этот фреймворк, обратитесь к статье и видео на главной странице проекта J2Cache. Здесь мы не будем вдаваться в подробности.

Одноуровневый кэш Py3Cache реализован на основе алгоритма LRU с использованием чистого модуля памяти pylru. Двухуровневый кэш основан на хранении данных в Redis. Для распространения событий кэширования используется Pub/Sub Redis.

Существующие проблемы

  • Текущие данные кэша становятся недействительными из-за истечения срока действия. Используется механизм триггера чтения: при чтении данных проверяется, превышает ли время их создания срок действия. Если да, то данные удаляются и возвращается None. То есть, если данные кэша никогда не считываются, они будут постоянно храниться в памяти и Redis.

Зависимости программного обеспечения

  • Python 3
  • PyRedis (двухуровневый кеш) (pip install redis)
  • Pickle (сериализатор)
  • Redis (сервис)

Использование

  1. Установите Py3Cache (pip install Py3Cache).
  2. Установите и запустите сервис Redis.
  3. Измените конфигурацию Redis хоста и порта в файле config.ini (находится в каталоге site-packages/py3cache).
  4. В разделе [memory] файла config.ini определите одноуровневый кэш (см. пример конфигурации в config.ini).
  5. Запустите несколько тестовых приложений: python3 Py3Cache.py.

Методы тестирования

После запуска тестового приложения можно использовать следующие команды для работы с кэшем:

exit/quit — выйти из тестового приложения; get [region] [key] — прочитать данные кэша в регионе [region], ключ [key]; set [region] [key] [val] — установить значение [val] для ключа [key] в регионе [region]; evict [region] [key] — удалить данные кэша; clear [region] — очистить все данные кэша для региона [region].

Пример кода

Использование в программе:

from py3cache import Py3Cache
p3c = Py3Cache.Py3Cache()
p3c.set("sites","oschina",{"id":100,"name":"oschina","url":"https://gitee.com"})
p3c.get("sites","oschina")
p3c.evict("sites","oschina")
p3c.close()

Помощь

Если у вас есть какие-либо предложения или требования по улучшению, пожалуйста, создайте Issue или отправьте Pull Requests.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Данный проект является версией J2Cache на языке Python. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/ld-Py3Cache.git
git@api.gitlife.ru:oschina-mirror/ld-Py3Cache.git
oschina-mirror
ld-Py3Cache
ld-Py3Cache
master