Django视图中使用cache后是否需调用cache.close()?不调用有何影响?
Django缓存:是否需要调用cache.close()?
问题1:在Django视图中使用完cache后是否需要调用cache.close()?
完全没必要。
Django主流的缓存后端(比如Redis、Memcached)都是靠连接池来管理和缓存服务器的连接的,cache.close()并不是真的把连接关掉,只是把当前连接放回连接池,留给后续请求复用。
而且Django的请求响应周期会自动处理连接的回收,根本不需要你在视图里手动调用这个方法。要是你提前调用了cache.close(),后面如果还有代码要用到缓存,就得重新创建新连接,反而白白浪费系统资源。
另外还有些缓存后端(比如本地内存缓存)根本没实现close()方法,调用了也等于白调。
问题2:如果不调用cache.close(),会产生什么不良影响?
啥不良影响都没有。
连接池会自动搞定连接的创建、复用和销毁,不会出现连接泄漏的问题。不调用cache.close()反而能让连接被后续请求复用,提升系统性能和资源利用率。
内容的提问来源于stack exchange,提问作者Super Kai - Kazuya Ito
相关产品推荐
相关产品推荐

