summaryrefslogtreecommitdiff
path: root/redis
Commit message (Collapse)AuthorAgeFilesLines
...
* add idle to xpending (#1523)Avital Fine2021-08-051-14/+28
|
* Add a count parameter to lpop/rpop for redis >= 6.2.0 (#1487)Gal Ben David2021-08-051-6/+24
| | | Co-authored-by: Chayim <chayim@users.noreply.github.com>
* exclusive gt and lt in zadd (#1533)Chayim2021-08-031-1/+12
| | | | | * exclusive gt and lt in zadd * docs update
* zinter (#1520)Avital Fine2021-08-011-10/+36
| | | | | | | | | | | | | | | | | | | * zinter * change options in _zaggregate * skip for previous versions * flake8 * validate the aggregate value * invalid aggregation * invalid aggregation * change options to get Co-authored-by: Chayim <chayim@users.noreply.github.com>
* Word was repeated in documentation (#1532)Jonathan Herlin2021-07-301-1/+1
| | | Small typo in documentation
* ensuring we adhere to exlusive options for getex (#1531)Chayim2021-07-291-0/+5
|
* zdiff and zdiffstore (#1518)Avital Fine2021-07-291-2/+20
|
* Zrangestore (#1521)Avital Fine2021-07-291-0/+9
|
* LT and GT support for ZADD (#1509)Chayim2021-07-291-1/+9
| | | | Co-authored-by: malinaa96 <52569986+malinaa96@users.noreply.github.com> Co-authored-by: Avital Fine <79420960+AvitalFineRedis@users.noreply.github.com>
* zrandmember (#1519)Avital Fine2021-07-251-0/+22
|
* getdel (#1514)Avital Fine2021-07-251-0/+9
|
* Implements CLIENT KILL laddr filter (#1506)Chayim2021-07-251-1/+5
|
* support for client unpause (#1512)Chayim2021-07-251-0/+6
|
* NOMKSTREAM support for XADD (#1507)Chayim2021-07-251-2/+5
|
* hrandfield (#1513)Avital Fine2021-07-221-0/+20
| | | | | | | | | | | | | * hrandfield * use mapping in hset * skip if version not fit * remove empty line * flake8 comments * new line for each comment
* client_list (#1517)Avital Fine2021-07-221-2/+10
|
* getex (#1515)Avital Fine2021-07-221-0/+51
| | | | | | | * getex * flake8 fix * comments
* Add support for COPY command new in Redis 6.2 (#1492)malinaa962021-07-201-1/+19
|
* Return index 4 as the command if not a listIan Bucad2021-05-181-1/+6
| | | | command is always a list. If index 3 is not a list, assume Redis Enterprise and return index 4 instead
* Remove blocking behaviour from context manager __enter__alxasfuck2021-05-121-3/+1
|
* Add support for the ABSTTL option of the RESTORE command. (#1423)Simon Charette2020-11-221-1/+10
| | | Add support for the ABSTTL option of the RESTORE command.
* Add optional exception handler to PubSubWorkerThread (#1395)Abhimanyu Deora2020-10-261-5/+18
| | | | | Add optional exception handler to PubSubWorkerThread Co-authored-by: Abhimanyu Deora <adeora@drwholdings.com>
* 🕰️ Use monotonic clock in Lock (and tests)Jack Edge2020-10-121-2/+2
| | | | | | | | | | | | | | | | | During a call to `acquire()`, if the call is `blocking` and has a `blocking_timeout` set, it uses `time.time()` calls to determine when to give up attempting to acquire the lock. However, since `time.time()` is marked as "adjustable", it is possible for it to go backwards or forwards at a rate other than 1 second per second, meaning the spinloop may exit earlier or later than expected. By changing the implementation to use `time.monotonic()`, which is guaranteed to never go backwards, and not be affected by system clock updates, this potential problem is fixed. For the same reason, some time dependent lock tests have also been changed to use `time.monotonic()`.
* Fixing #1390 modules key in info command (#1393)2014bduck2020-09-031-1/+7
| | | | | When modules are present, INFO's response will contain a `modules` key which will be a list of dicts describing each module. Co-authored-by: jiekun.zhu <jiekun.zhu@shopee.com>
* Added the ACL LOG command available in Redis 6Andy McCurdy2020-08-191-0/+61
| | | | | | | | | `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
* fix: Align from_url in utils.py to remove DB as a 2nd paramTom King2020-08-171-2/+2
|
* All values within Redis URLs are url-unquoted via default.Andy McCurdy2020-08-152-123/+105
| | | | | | | | 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-066-514/+268
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Fix some documentation formattingJon Banafato2020-07-262-29/+32
| | | | | Fix a few broken links and class references, move a docstring, and fix a code block.
* LPOS: add new command (#1354)Paul Spooren2020-07-221-0/+36
| | | | | Added the LPOS command from Redis 6.0.6 Fixes #1353
* fix typo (#1367)Roey Prat2020-07-131-1/+1
|
* Support for loading, unloading and listing Redis Modules (#1360)Roey Prat2020-07-133-0/+50
| | | | | | | | | | | * Support for loading, unloading and listing Redis Modules * minor fixes for flake * unit test for module list - only the empty use case * ModuleError should inherit from ResponseError rather than RedisError Co-authored-by: Vamsi Atluri <vamc19@gmail.com>
* Fix acl_setuser docstringAndrew Brookins2020-06-291-1/+1
| | | Fix the docstring for acl_setuser() so that it refers to the correct parameter name,`passwords`.
* Do not un-escape \ characters when parsing MONITOR outputAndy McCurdy2020-06-081-1/+4
| | | | | | | Prior to this, escaped slashes ("\\") were un-escaped. This caused the strings "foo\x92" and "foo\\x92" to be represented the same way in the output. Fixes #1349
* 3.5.33.5.3Andy McCurdy2020-06-011-1/+1
|
* SentinelConnectionPool plays better with threaded applications.Andy McCurdy2020-06-012-14/+51
| | | | | | | | | 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
* [sentinel] update master address if it changes. (#847)Jake2020-05-201-0/+1
| | | Update the cached master_address if the Sentinels promote a new master.
* Restore try/except in __del__ methodsAndy McCurdy2020-05-202-8/+23
| | | | Fixed #1339
* 3.5.23.5.2Andy McCurdy2020-05-141-1/+1
|
* Tune the locking in ConnectionPool.get_connectionAndy McCurdy2020-05-141-21/+22
| | | | | The lock does not need to be held while waiting for the socket to establish and validate the TCP connection.
* 3.5.13.5.1Andy McCurdy2020-05-091-1/+1
|
* Fix for HSET argument validation to allow any non-None keyAleksMat2020-05-091-4/+4
| | | | | Fixes #1337 Fixes #1341
* version 3.5.03.5.0Andy McCurdy2020-04-291-1/+1
|
* Fix typo (missing space) in exception message (#1334)Jon Dufresne2020-04-281-1/+1
|
* Switch to flake8 for static code analysis (#1328)Jon Dufresne2020-04-164-3/+2
| | | | | | | | | flake8 catches a wider net of mistakes than pycodestyle and is more commonly used by the larger community. For example, it catches unused imports, a few of which existed. These have since been removed. Two "noqa" comments were added. One ignores the _compat.py file as it has a large amount of Python version specific code. The second is in utils.py which intentionally does not use an import.
* Enable BytesWarning during test and fix discovered case (#1322)Jon Dufresne2020-04-131-1/+5
| | | | | | | | | | | | The Python command line argument -b causes Python to emit a warning when bytes and str usage is mixed. This is generally considered bad practice as either one or the other is required. Enabling this feature during tests helps catch them before reaching production. The warning appeared as: tests/test_scripting.py::TestScripting::test_eval_msgpack_pipeline_error_in_lua .../redis-py/redis/client.py:3967: BytesWarning: str() on a bytes instance cmd = ' '.join(imap(safe_unicode, command))
* Fix str/bytes mixup in PythonParser.read_response() (#1324)Jon Dufresne2020-04-132-18/+11
| | | | | | | | | | | | Calling str() on a bytes object can result in a BytesWarning being emitted and usually indicates a mixup between byte and string handling. Now, in the event of an invalid RESP response, use the repr value of the raw response in the exception message. Can further simplify the bytes/str handling by comparing the first byte as a bytes object instead of converting it to str. The bytes literal is available on all supported Pythons. This removes the need for the compatibility function, byte_to_chr().
* Prefer Python 3 syntax in examples (#1325)Jon Dufresne2020-04-131-1/+1
| | | | As Python 3 is the future of the language, when the docs need to make a syntax choice, use the Python 3 version.
* Simplify exception handlers (#1319)Jon Dufresne2020-04-112-19/+15
| | | | | | | | | Use the "as" keyword to capture the exception in a variable instead of sys.exc_info(). Re-raise exception with the bare "raise" syntax. Avoid "# noqa: E722" by catching BaseException, which includes all exceptions including SystemExit.
* Fix typo: occured → occurred (#1315)Jon Dufresne2020-04-091-4/+4
|