| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
Fix an issue where socket.timeout errors could be handled by the wrong
exception handler in Python 2.7.
|
|
|
|
|
|
|
| |
versions 3.3.1, 3.3.2 and 3.3.3 could potentially hide ConnectionErrors
on Python 2.7. This change accurately identifies errors by both
exception class and errno to determine whether a nonblocking socket can
be read
|
| |
|
|
|
|
|
|
|
|
| |
The SSL module includes in Python versions < 2.7.9 does not include
the SSLWantReadError or SSLWantWriteError exceptions. As such we can't
assume they are present just because the ssl module happens to be installed.
Fixes #1197
|
|
|
|
| |
Ref #1197
|
|
|
|
| |
Fixes #1197
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The `Redis` class and the `ConnectionPool` class now support the
"health_check_interval=N" option. By default N=0, which turns off health
checks. `N` should be an integer, and when greater than 0, ensures that
a health check is performed just before command execution anytime the
underlying connection has been idle for more than N seconds. A health
check is a full PING/PONG round trip to the Redis server.
If a health check encounters a ConnectionError or TimeoutError, the connection
is disconnected and reconnected and the health check is retried exactly once.
Any error during the retry is raised to the caller. Health check retries
are not governed by any other options such as `retry_on_timeout`. In systems
where idle times are common, these health checks are the intended way to
reconnect to the Redis server without harming any user data.
When this option is enabled for PubSub connections, calling `get_message()` or
`listen()` will send a health check anytime a message has not been read on
the PubSub connection for `health_check_interval` seconds. Users should
call `get_message()` or `listen()` at least every `health_check_interval`
seconds in order to keep the connection open.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This has multiple uses:
* Single connection clients will not be considered threadsafe. This means
certain settings could temporarily be adjusted. For example, a context
manager could temporarily modify the encoding behavior for a set
of commands.
* We can introduce more thorough health checks that only happen when a
connection is handed out from the connection pool.
* Workloads that issue many commands to Redis should be slightly faster.
Prior to this change, the client must retrieve a connection from the
pool for each command.
|
| |
|
|
|
|
| |
Fixes #1191
|
|
|
|
|
|
|
| |
This replaces the work in 3.2.0 to use nonblocking sockets instead of
selectors. Selectors proved to be problematic for some environments
including eventlet and gevent. Nonblocking sockets should be available
in all environments.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Fixes #969
Fixes #961
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Lock.acquire() can now be provided a token. If provided, this value will be
used as the value stored in Redis to hold the lock.
Lock.owned() returns a boolean indicating whether the lock is owned by the
current instance.
|
| |
|
| |
|
|
|
|
| |
Stream message now respect the decode_responses flag.
|
| |
|
|
|
|
|
|
|
| |
When incr=True and xx=True and an element is specified that doesn't exist
the Redis server returns None. redis-py now does this as well.
Fixes #1084
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Python 3.3 is EOL. It is no longer receiving bug fixes, including for
security issues. It has been EOL since 2017-09-29. For additional
details of the status of Python versions, see:
https://devguide.python.org/#status-of-python-branches
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Python 2.6 is EOL. It is no longer receiving bug fixes, including for
security issues. It has been EOL since 2013-10-29. For additional
details of the status of Python versions, see:
https://devguide.python.org/#status-of-python-branches
For discussions on why removing Python 2.6 benefits the entire
community, please see:
https://snarky.ca/stop-using-python-2-6/
http://www.curiousefficiency.org/posts/2015/04/stop-supporting-python26.html
|
|\
| |
| | |
fix description for srandmember bugfix
|
| |
| |
| | |
Reading through the changelog I noticed that one of the items seemed to trail off mid-sentence. I assume this was meant to refer to https://github.com/andymccurdy/redis-py/issues/881 and https://github.com/andymccurdy/redis-py/pull/882
|
|/ |
|
| |
|
| |
|