summaryrefslogtreecommitdiff
path: root/CHANGES
Commit message (Collapse)AuthorAgeFilesLines
* beta2 version and CHANGES update (#1643)v4.0.0b2Chayim2021-10-261-0/+7
|
* bringing CHANGES up-to-date (#1600)Chayim2021-10-141-8/+19
|
* Updating CHANGES with the latest improvements. (#1569)Chayim2021-09-051-10/+45
| | | Thanks everyone for all your contributions!
* Updating CHANGES to list most recent changes (#1544)Chayim2021-08-181-0/+50
|
* Fix some typos. (#1496)Binbin2021-08-081-3/+3
|
* Add support for the ABSTTL option of the RESTORE command. (#1423)Simon Charette2020-11-221-0/+2
| | | Add support for the ABSTTL option of the RESTORE command.
* Added the ACL LOG command available in Redis 6Andy McCurdy2020-08-191-0/+2
| | | | | | | | | `acl_log()` returns a list of dictionaries, each describing a log entry. `acl_log_reset()` instructs the server to truncate the log. Thanks @2014BDuck Fixes #1307
* All values within Redis URLs are url-unquoted via default.Andy McCurdy2020-08-151-1/+5
| | | | | | | | Prior versions of redis-py supported this by specifying the ``decode_components`` flag to the ``from_url`` functions. This is now done by default and cannot be disabled. Fixes #589
* Remove support for end-of-life Python 2.7 (#1318)Jon Dufresne2020-08-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove support for end-of-life Python 2.7 Python 2.7 is end of life. It is no longer receiving bug fixes, including for security issues. Python 2.7 went EOL on 2020-01-01. For additional details on support Python versions, see: Supported: https://devguide.python.org/#status-of-python-branches EOL: https://devguide.python.org/devcycle/#end-of-life-branches Removing support for EOL Pythons will reduce testing and maintenance resources while allowing the library to move towards a modern Python 3 style. Python 2.7 users can continue to use the previous version of redis-py. Was able to simplify the code: - Removed redis._compat module - Removed __future__ imports - Removed object from class definition (all classes are new style) - Removed long (Python 3 unified numeric types) - Removed deprecated __nonzero__ method - Use simpler Python 3 super() syntax - Use unified OSError exception - Use yield from syntax Co-authored-by: Andy McCurdy <andy@andymccurdy.com>
* changelogAndy McCurdy2020-07-221-0/+2
|
* changelogAndy McCurdy2020-07-201-0/+3
|
* documentation: fix ssl typos in the changelogRoey Prat2020-07-071-1/+1
|
* changelogAndy McCurdy2020-06-291-1/+1
|
* SentinelConnectionPool plays better with threaded applications.Andy McCurdy2020-06-011-0/+2
| | | | | | | | | Prevent the pool from closing sockets on connections that are actively in use by other threads when the master address changes. Connections returned to the pool that are still connected to the old master will be disconnected gracefully. Fixes #1345
* changelogAndy McCurdy2020-05-201-0/+1
|
* Restore try/except in __del__ methodsAndy McCurdy2020-05-201-0/+3
| | | | Fixed #1339
* Tune the locking in ConnectionPool.get_connectionAndy McCurdy2020-05-141-0/+4
| | | | | The lock does not need to be held while waiting for the socket to establish and validate the TCP connection.
* Fix for HSET argument validation to allow any non-None keyAleksMat2020-05-091-0/+3
| | | | | Fixes #1337 Fixes #1341
* version 3.5.03.5.0Andy McCurdy2020-04-291-2/+4
|
* Add testing and support for PyPyJon Dufresne2020-04-041-0/+1
|
* Lock.extend() can now replace the lock's existing TTL with a new valuelaixintao2020-03-241-0/+4
| | | | | | | Lock.extend() now has a new option, `replace_ttl`. When False (the default), Lock.extend() adds the `additional_time` to the lock's existing TTL. When replace_ttl=True, the lock's existing TTL is replaced with the value of `additional_time`.
* add keepttl option to set command.laixintao2020-03-121-0/+1
| | | | | fixes #1304 fixes #1280
* Clear pipeline watch state after execNick Gaya2020-03-101-0/+3
|
* Don't send DISCARD after ExecAbortError in pipelineNick Gaya2020-03-101-0/+2
| | | | | | | The `EXECABORT` error type was added in Redis 2.6.5 and is returned from an `EXEC` command to indicate that the transaction was aborted due to an invalid command. It is not necessary to call `DISCARD` after this error, and doing so causes a "DISCARD without MULTI" error.
* doc: fix changes of `hset`.(incorrect version) (#1297)赖信涛2020-03-031-2/+2
| | | fix: https://github.com/andymccurdy/redis-py/issues/1296
* Support memoryview encoding/decoding as a no-opCody-G2020-02-241-1/+4
| | | | | | | | | | This allows memoryview instances to be passed to Redis command args that expect strings or bytes. The memoryview instance is sent directly to the socket such that there are zero copies made of the underlying data during command packing. Fixes #1265 Fixes #1285
* Optimize sleeping while blocking for a lockColas Le Guernic2020-02-241-0/+4
| | | | | | | | | When waiting to acquire a lock, the Lock object will sleep until the lock is acquired or until blocking_timeout has elapsed. This optimization calculates whether the next iteration will occur after blocking_timeout has elapsed and short circuits it immediately. Fixes #1263
* expand AUTH fallback support to pre-v6 Redis servers.Andy McCurdy2020-02-121-0/+2
| | | | Ref #1274
* Stop hiding errors that occur inside __del__ methodsJon Dufresne2020-02-121-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If an exception occurs inside the __del__ method, it should be reported to the developer. Not doing so could hide bugs. Python automatically handles exceptions inside __del__ methods, for example: class A: def __del__(self): 1 / 0 A() print("after del") Results in the output: $ python3 ~/blah.py Exception ignored in: <function A.__del__ at 0x7fbbf2bbfc20> Traceback (most recent call last): File "/home/jon/test.py", line 3, in __del__ 1 / 0 ZeroDivisionError: division by zero after del From this example, we can see the bug was not hidden and the code after __del__ still executed. fixes #1281
* Make hset support multiple field/value pairs. (#1271)赖信涛2020-02-071-0/+2
| | | | | | | | | | | | * make `hset` command support multi field/value pairs. see: https://redis.io/commands/hset close https://github.com/andymccurdy/redis-py/issues/1269 deprecated: hmset Co-authored-by: Alan Mai <0110amai@gmail.com>
* 3.4.13.4.1Andy McCurdy2020-02-011-1/+7
|
* Move the username argument in the Redis and Connection classes to the endAndy McCurdy2020-01-311-0/+3
| | | | | | | This helps those poor souls that specify all their connection options as non-keyword arguments. Fixes #1276
* Provide AUTH fallback support for connection URLs with a username componentAndy McCurdy2020-01-311-0/+9
| | | | | | | | | | | | | Prior to ACL support, redis-py ignored the username component of Connection URLs. With ACL support, usernames are no longer ignored and are used to authenticate against an ACL rule. Some cloud vendors with managed Redis instances (like Heroku) provide connection URLs with a username component pre-ACL that is not intended to be used. Sending that username to Redis servers < 6.0.0 results in an error. Attempt to detect this condition and retry the AUTH command with only the password such that authentication continues to work for these users. Fixes #1274
* 3.4.03.4.0Andy McCurdy2020-01-301-1/+1
|
* better thread-safety for ConnectionPool (#1270)Andy McCurdy2020-01-301-0/+8
| | | Better thread and fork safety for ConnectionPool and BlockingConnectionPool
* add type filter to scan functionnetocp2020-01-301-0/+1
| | | | Fixed #1220
* Slight optimization to command packing.Andy McCurdy2019-12-291-0/+1
| | | | Fixed #1255
* Add test for pipeline.transaction(value_from_callable=True)Andy McCurdy2019-12-291-1/+1
|
* Added the 'ssl_check_hostname' option.Andy McCurdy2019-12-291-0/+4
| | | | | | | | 'ssl_check_hostname' tells SSL Connections to whether to require the TCP hostname to match the hostname specified in the SSL Cert. By default 'ssl_check_hostname' is False to maintain backwards compatibility. Fixed #1196
* Allow setting client_name during connection construction.Peter van Dijk2019-12-291-0/+4
| | | | | | Client instances and Connection pools now accept "client_name" as an optional argument. If supplied, all connections created will be named via CLIENT SETNAME once the connection to the server is established.
* Testing the boolean nature of Pipeline instance should always return True.Andy McCurdy2019-12-291-0/+4
| | | | | | | | Prior to this, pipeline instances used __len__() which returns the number of queued commands on the pipeline. When there were no queued commands, the pipeline instance would evaluate to 0 or False. Fixes #994
* Added support for ACL commandsAndy McCurdy2019-12-281-0/+2
|
* Drop support for end-of-life Python 3.4Jon Dufresne2019-12-071-0/+1
| | | | | | | | | | Python 3.4 has been EOL since 2019-03-18. Removing from the test matrix helps reduce testing resources. For additional details on unsupported Python versions, see: https://devguide.python.org/devcycle/#end-of-life-branches
* Allow Pipeline.execute() to execute on empty command stack if it is watching ↵Brian Maissy2019-10-241-1/+6
| | | | keys
* Version 3.3.113.3.11Andy McCurdy2019-10-131-0/+3
| | | | | | check exception.args rather than exception.message. exception.message was deprecated prior to Python 2.7 and some alternative builds have removed it completely.
* Version 3.3.103.3.10Zac Bristow2019-10-101-0/+3
| | | | | | | | | 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-101-0/+4
| | | | | | | | | 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.
* version 3.3.8, fix MONITOR output to account for all types of clients3.3.8huangwei-ds52019-08-191-0/+3
| | | | | | | | | | 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-131-0/+4
| | | | | | | 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-061-0/+3
| | | | Fixes #1200