如何更新存储在 django 缓存中的字典?



所以我将登录用户上传的youtube视频元数据存储在django的缓存中。元数据看起来像这样:

{'user': {'channels': [{'id': 1, 'etag': '2', 'videos': [{'id': '1', 'etag': '2'},]},]}

每个用户都有自己的元数据。现在我想更新存储在缓存中的数据(例如更新一些频道视频)。我能做点什么吗?

cache.set('user', channels[0]['videos']=[new list], 30)?

考虑到Django的缓存框架支持各种各样的后端,我怀疑直接在缓存中操作Python对象的内部是可能的,因为这需要后端理解Python对象。你能得到的最接近的是…

value = cache.get('user')
value['channels'][0]['videos'] = <new list>
cache.set('user', value)

如果你需要更细粒度的更新,你必须为每个用户使用多个键,例如....

username = 'user'
videos_key_name = '%s/videos' % username
channels_key_name = '%s/channels' % username
cache.set(videos_key_name) = whatever
cache.set(channels_key_name) = whatever

…虽然这需要改变结构的设计

相关内容

  • 没有找到相关文章

最新更新