Redis是线程安全的,所以为什么要在redis-py中使用`BlockingConnectionPool`

时间:2018-08-13 04:07:41

标签: python django redis

我使用Django缓存。我知道Redis是安全的。

如果需要a,则在配置BlockingConnectionPool时。

CACHE的作用是什么?

何时需要使用BlockingConnectionPool

2 个答案:

答案 0 :(得分:1)

BlockingConnectionPool是redis中的一类。尽管Rdis是线程安全的,BlockingConnectionPool增加了重用性。 它执行与默认实现:py:class: ~redis.connection.ConnectionPool相同的功能,因为它维护着一个可重用的连接池,该池可以由多个redis客户端共享(如果需要,可以安全地跨线程)。

有关更多说明,请访问此链接: https://kite.com/python/docs/redis.BlockingConnectionPool

答案 1 :(得分:1)

根据official docsBlockingConnectionPool中的“阻止”不是对线程安全性的引用,而是指如果没有可用连接的情况,则此实现将等待( block )指定的秒数(timeout参数),直到可用。

# Raises ConnectionError if connection is not available within before 10s timeout
pool = BlockingConnectionPool(timeout=10)

指定timeout=None将无限期阻止。