当前位置:   article > 正文

django 缓存模块缓存 API的使用_django cache.get

django cache.get

上篇文章我们介绍了本地文件缓存的方法,这次我们说一下django缓存API的使用方法,有时候我们并不需要去缓存一整张视图或函数,我们只需要缓存一个或几个结果数据,这时候我们就可以使用缓存API

下面咱们看一下缓存API的用法:

cache.set()(键,值,超时=DEFAULT_TIMEOUT,版本=无)

cache.get()(键,默认=无,版本=无)

key应该是sty, 并且value可以是任何可挑选的 Python 对象。

该timeout参数是可选的,默认为设置timeout中适当后端的参数。这是应存储在缓存中的秒数 如果缓存中不存在对象,则cache.get()返回None:

如果确定缓存中存入了None值,可以使用哨兵对象来进行判断

  1. sentinel = object()
  2. cache.get('my_key', sentinel) is sentinel
  3. False
  4. cache.get('my_key', sentinel) is sentinel
  5. True

cache.get 还可以指定如果缓存中不存在对象时要返回的值

cache.get('查询key', '自定义返回值')

cache.add(键,值,超时=DEFAULT_TIMEOUT,版本=无) 它采用与 相同的参数set(),但如果指定的键已经存在,它将不会尝试更新缓存 cache.delete(键,版本=无)

cache.delete_many(键,版本=无)批量删除,可以获取键列表

cache.clear()清除所有键

cache.close() 关闭与缓存的连接。

接着看下在项目中的实际使用:

  1. from django.core.cache import cache
  2. # 存储指定的值到本地缓存中,存储时间为五分钟
  3. def __handle(self):
  4. for record in self.__kafka_consumer:
  5. logger.debug(record)
  6. value = json.loads(record.value)
  7. cache.set('my_key', value, 60 * 5)
  8. value['node_id'] = int(NodeID)
  9. self.__elasticsearch_client.index(
  10. index=self.__elasticsearch_index,
  11. doc_type='_doc',
  12. body=value
  13. )
  14. # 获取存入的键值
  15. request = cache.get('my_key')

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/259095
推荐阅读
相关标签
  

闽ICP备14008679号