summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* check exception.args rather than exception.messagessl-py27-fixAndy McCurdy2019-10-111-1/+2
|
* Version 3.3.103.3.10Zac Bristow2019-10-103-2/+5
| | | | | | | | | Fix SSL regression introduced in 3.3.9 The wrapper introduced to handle SSL timeout errors in Python 2.7 incorrectly assumed that instances of SSLError would always have a string as their first element. The safer approach is to check the message attribute on the error.
* Version 3.3.93.3.9Zac Bristow2019-10-104-6/+62
| | | | | | | | | Fixes SSL read timeouts in Python 2.7 The ssl module in Python 2.7 raises timeouts as ssl.SSLError instead of socket.timeout. When these timeouts are encountered, the error will be re-raised as socket.timeout so it is handled appropriately by the connection.
* spelling fixes (#1218)Stephen Hassard2019-10-061-4/+4
|
* version 3.3.8, fix MONITOR output to account for all types of clients3.3.8huangwei-ds52019-08-194-3/+31
| | | | | | | | | | The client section of MONITOR output varies for TCP connections, unix socket connections and commands executed from Lua scripts. Account for each of these cases by including an additional key `client_type` in the MONITOR output. `client_type` will be one of ('tcp', 'unix', 'lua'). `client_address` and `client_port` vary based on the `client_type`. Fixes #1201
* version 3.3.7, Fixed a socket.error regression introduced in 3.3.03.3.7Andy McCurdy2019-08-133-5/+21
| | | | | | | Prior versions of 3.3.x could potentially raise a raw socket.error (or one of its subclasses) instead of a redis.exceptions.ConnectionError. Fixes #1202
* version 3.3.6, fixed a regression in 3.3.5 with pubsub timeouts3.3.6Andy McCurdy2019-08-064-1/+20
| | | | Fixes #1200
* version 3.3.5, handle socket.timeout errors correctly in Python 2.73.3.5Andy McCurdy2019-08-023-17/+12
| | | | | Fix an issue where socket.timeout errors could be handled by the wrong exception handler in Python 2.7.
* version 3.3.4, more specifically identify nonblocking read errors3.3.4Andy McCurdy2019-07-301-1/+2
| | | | | | | 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
* version 3.3.4, more specifically identify nonblocking read errorsAndy McCurdy2019-07-303-15/+22
| | | | | | | 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
* fixed some misspellings in the changes fileAndy McCurdy2019-07-301-22/+22
|
* Version 3.3.3. Accomodate Python 2.7.x versions < 2.7.9.3.3.3Andy McCurdy2019-07-303-3/+6
| | | | | | | | 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
* Make pubsub tests more resilient on laggy connectionsAndy McCurdy2019-07-301-12/+40
| | | | | | | | | | Commands sent on pubsub connections (like subscribe, psusbscribe, etc.) do not wait for the server to acknowledge a reply. This can lead to situations where commands are executed out of order. This is more noticeable on laggy connections. This fix ensures that all anticipated messages are read off the pubsub connection before proceeding to the next command
* use a multi-connection client for multiprocess testsAndy McCurdy2019-07-291-0/+12
|
* Version 3.3.2, SSL Blocking Exceptions don't use errno.EWOULDBLOCK3.3.2Andy McCurdy2019-07-293-5/+9
| | | | Ref #1197
* version 3.3.1, fixed a regression involving SSL and non-blocking sockets3.3.1Andy McCurdy2019-07-293-9/+23
| | | | Fixes #1197
* clearer language in docs3.3.0Andy McCurdy2019-07-281-3/+3
|
* update readme with health_check_interval optionAndy McCurdy2019-07-281-0/+39
|
* version 3.3.0Andy McCurdy2019-07-282-2/+2
|
* Pipelines shouldn't retry ConnectionErrors implicitlyAndy McCurdy2019-07-282-15/+29
|
* Add an Event parameter to PubSubWorkerThread and run_in_thread so (#1195)Timothy Rule2019-07-281-5/+5
| | | | The PubSubWorkerThread now uses a `threading.Event` to control its life cycle.
* PING/PONG health checksAndy McCurdy2019-07-285-28/+275
| | | | | | | | | | | | | | | | | | | | | | 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.
* Ability to create a client that uses a single connectionAndy McCurdy2019-07-235-56/+110
| | | | | | | | | | | | | 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.
* Fix typo in README and CHANGELOG (#1133)Jani Korhonen2019-07-182-2/+2
|
* Updates README.rst with svg badge (#1182)Nikita Sobolev2019-07-171-1/+1
|
* Handle removed claimed messages without an exceptionThomas Daskalakis2019-07-173-1/+34
| | | | Fixes #1191
* Use nonblocking sockets instead of selectors for healthy connectionsAndy McCurdy2019-07-098-373/+128
| | | | | | | 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.
* Add READONLY and READWRITE commandsTheo Despoudis2019-07-093-2/+24
|
* Code coverage in travis, and codecov.io badge. (#1180)Roey Prat2019-06-252-1/+6
|
* Add redis_url cmdline argument for tests (#1170)Grygorii Iermolenko2019-06-061-31/+46
| | | Users can now specify --redis-url when running the test suite to choose a specific server.
* changelogAndy McCurdy2019-06-031-0/+4
|
* All authentication-related errors now raise AuthenticationErrorAndy McCurdy2019-06-033-4/+21
| | | | | | | AuthenticationError is now a subclass of ConnectionError, which means the connection will be shut down and cleaned up. Fixes #923
* changelogAndy McCurdy2019-05-291-0/+3
|
* Pass encoding_errors setting to hiredis (>=1.0.0) (#1162)Brian Candler2019-05-292-0/+18
| | | | | Pass encoding_errors setting to hiredis (>=1.0.0). Fixes #1161
* changelogAndy McCurdy2019-05-281-0/+3
|
* case insensitive response callbacks.Andy McCurdy2019-05-282-1/+32
| | | | | | | this change allows users to call client.execute_command('info') or client.execute_command('INFO') and get the same parsed result. Fixes #1168
* changelogAndy McCurdy2019-05-281-0/+2
|
* remove Token class in favor of bytestringremove_tokenAndy McCurdy2019-05-283-126/+89
| | | | | | | The Token class was needed when supporting Python 2.6. Now that we've dropped support for 2.6, we don't need it anymore. Fixes #1066
* cleanup MONITOR docsAndy McCurdy2019-05-282-7/+9
|
* fix py2 compatmonitorAndy McCurdy2019-05-261-2/+3
|
* add tests for encoding issues and fix bugs foundAndy McCurdy2019-05-262-6/+13
|
* monitor command now has full command text. test suite improvedAndy McCurdy2019-05-262-8/+41
|
* Merge branch 'master' into monitorAndy McCurdy2019-05-261-2/+4
|\
| * Merge pull request #1152 from aachurin/masterAndy McCurdy2019-04-291-2/+4
| |\ | | | | | | Fix for https://github.com/andymccurdy/redis-py/issues/1135
| | * Update client.pyaachurin2019-03-161-2/+4
| | | | | | | | | Fix for https://github.com/andymccurdy/redis-py/issues/1135
* | | Merge branch 'pr/1033' into monitorAndy McCurdy2019-04-253-0/+71
|\ \ \ | |/ / |/| |
| * | Added support for the monitor command.Doug Kisabaka2019-02-253-0/+71
| | |
* | | changelogAndy McCurdy2019-04-191-0/+2
| | |
* | | Fix PubSubWorkerThread race conditionAndy McCurdy2019-04-181-13/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Resolves a race condition found in the PubSubWorkerThread. Prior to this change is was possible to receive the server's resonse to an unsubscribe message prior to the channel/pattern being added to the pending_unsubscribe set. This also improves PubSubWorkerThread.stop so that the run function is stopped immediately after the next iteration. fixes #1150
* | | Merge pull request #1159 from Vic020/fix_connection_reading_socket_errorAndy McCurdy2019-04-161-36/+31
|\ \ \ | | | | | | | | Connection Reading Socket Error Enhancement