我想用 redis 作为我的缓存数据库在 django 中实现一致的散列。首先,我尝试利用 uhashing( https://pypi.org/project/uhashring/ ) 包来实现与 redis 的一致哈希,但我无法提供 django 和包之间的链接。我做的第二件事是在 django 本身中搜索使用一致散列配置 Redis,但我找不到任何相关内容。我只能找到使用 memcached 配置 redis。
有什么办法可以解决我的问题。任何小提示也会有所帮助,谢谢。
我想用 redis 作为我的缓存数据库在 django 中实现一致的散列。首先,我尝试利用 uhashing( https://pypi.org/project/uhashring/ ) 包来实现与 redis 的一致哈希,但我无法提供 django 和包之间的链接。我做的第二件事是在 django 本身中搜索使用一致散列配置 Redis,但我找不到任何相关内容。我只能找到使用 memcached 配置 redis。
有什么办法可以解决我的问题。任何小提示也会有所帮助,谢谢。
为什么不简单地根据您可以更轻松地控制和读取的字符串生成密钥?
示例:如果您正在缓存特定用户的帖子列表,您可以像这样简单地生成密钥。如果您可以从字符串值生成键,则没有特别需要使用散列算法。
< 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='
我刚刚找到了我的问题的一些解决方案。
我要使用的外部包需要添加到 seetings.py 文件中的已安装应用程序中,因此无需特别将 django 连接到使用该包的脚本。这个包被导入并在views.py中使用。
感谢您的帮助,干杯..!