Json 缓存特定于用户的查询django
我有一个存储媒体URL(图像/视频)的表和一个使用这些URL的前端应用程序。我正在尝试实现缓存,以使这一切运行得更快、更具可扩展性 问题是我有一个likes表,它存储特定用户喜欢的视频/图像。我需要返回一个布尔值以及图像/视频url,说明用户是否已经喜欢该媒体 现在我只是缓存返回的图像/视频的json,然后从缓存中获取它,并在json响应中插入一个“like”属性。这看起来像这样: 这将运行并检查缓存中是否存在特定的介质页:Json 缓存特定于用户的查询django,json,django,caching,Json,Django,Caching,我有一个存储媒体URL(图像/视频)的表和一个使用这些URL的前端应用程序。我正在尝试实现缓存,以使这一切运行得更快、更具可扩展性 问题是我有一个likes表,它存储特定用户喜欢的视频/图像。我需要返回一个布尔值以及图像/视频url,说明用户是否已经喜欢该媒体 现在我只是缓存返回的图像/视频的json,然后从缓存中获取它,并在json响应中插入一个“like”属性。这看起来像这样: 这将运行并检查缓存中是否存在特定的介质页: media_json = cache.get('media'+user
media_json = cache.get('media'+username+str(page))
if media_json:
new_json = []
media_ids = []
for media in tags_json:
media_ids.append(media['media_id'])
user_likes = Like.objects.filter(created_by=user,media__pk__in=media_ids)
for media in media_json:
liked = False
for user_like in user_likes:
if user_like.media_id == int(media['media_id']):
liked = True
media['liked'] = liked
new_json.append(media)
return JsonResponse({'response': 1, 'media': new_json})
如果媒体页面不在缓存中,那么我查询数据库并从头创建json响应
如何缓存用户喜欢的某个媒体?最好我不必再次查询数据库。查询数据库可能不是一件坏事,它可能比序列化/反序列化json并对其进行迭代要高效得多。事实上,您最好将其转换为一个表,这样您就可以使用一个简单的查询来确定用户是否喜欢某样东西。我已经用它运行了负载测试,它比再次查询db的速度快2倍左右。似乎我不能做任何事情,但喜欢。你的数据库中的字段是否正确索引?您是否对查询进行了“解释”以查看是否实际使用了索引?查询数据库可能并不是一件坏事,它可能比序列化/反序列化json并遍历它更有效。事实上,您最好将其转换为一个表,这样您就可以使用一个简单的查询来确定用户是否喜欢某样东西。我已经用它运行了负载测试,它比再次查询db的速度快2倍左右。似乎我不能做任何事情,但喜欢。你的数据库中的字段是否正确索引?您是否对查询进行了“解释”以查看索引是否实际被使用?