Как реализовать согласованное хеширование в Django с использованием базы данных Redis? - PullRequest
0 голосов
/ 16 октября 2019

Я хочу реализовать согласованное хеширование в django с redis в качестве моей кеш-базы данных. Во-первых, я попытался использовать пакет uhashing (https://pypi.org/project/uhashring/) для реализации согласованного хэширования с помощью redis, но я не могу предоставить связь между django и пакетом. Второе, что я сделал, - это поиск Настройка Redis с согласованным хешированием в самом django, но яЯ не могу найти ничего связанного. Я могу найти только настройку redis с memcached.

Есть ли способ получить решение для моей проблемы. Любая небольшая подсказка также будет полезна, спасибо.

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Я только что нашел решение моего вопроса.

Внешний пакет, который я хочу использовать, необходимо добавить в установленные приложения в файле seetings.py, чтобы не было необходимости специально подключатьсяdjango к сценарию, в котором используется пакет. Этот пакет импортируется и используется в views.py.

Спасибо за помощь, ура ..!

0 голосов
/ 16 октября 2019

Почему бы просто не сгенерировать ключ на основе строки, которую вы можете более легко контролировать и читать?

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

< f'user.{user.id}.posts'

> 'user.1.posts'

Пример: если вы кэшируете список сотрудников компаний:

< f'company.{company.id}.staff'

> 'company.5693667b-f8a7-4dc6-9171-a3941c4a97ad.posts'

Пример: кэширование результата сложного запроса пользователем:

< f'user.{user.id}.search-query.{base64.b64encode(<querystring>)}'

> 'user.1.search-query.c3VwZXItc3BlY2lhbC1xdWVyeS1zdHJpbmc='
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...