我有一个存储媒体网址(图片/视频)的桌子和一个消费这些网页的前端应用程序。我正在尝试实现缓存,以使所有运行更快,更具可伸缩性。
问题是我有一个喜欢的表来存储特定用户喜欢的视频/图像。我需要返回一个布尔值以及图像/视频网址,表明此人是否已经喜欢该媒体。
现在我只是缓存返回的图像/视频的json,然后从缓存中抓取并在json响应中插入'likes'属性。这看起来像这样:
运行并检查缓存中是否有特定的媒体页面:
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响应。
如何缓存用户喜欢某个媒体的内容?我最好不要再次查询数据库。