Redis

Latest version: v5.0.4

Safety actively analyzes 629723 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 12

2.10.0

* Discontinued support for Python 2.5. Upgrade. You'll be happier.
* The HiRedis parser will now properly raise ConnectionErrors.
* Completely refactored PubSub support. Fixes all known PubSub bugs and
adds a bunch of new features. Docs can be found in the README under the
new "Publish / Subscribe" section.
* Added the new HyperLogLog commands (PFADD, PFCOUNT, PFMERGE). Thanks
Pepijn de Vos and Vincent Ohprecio.
* Updated TTL and PTTL commands with Redis 2.8+ semantics. Thanks Markus
Kaiserswerth.
* *SCAN commands now return a long (int on Python3) cursor value rather
than the string representation. This might be slightly backwards
incompatible in code using*SCAN commands loops such as
"while cursor != '0':".
* Added extra *SCAN commands that return iterators instead of the normal
[cursor, data] type. Use scan_iter, hscan_iter, sscan_iter, and
zscan_iter for iterators. Thanks Mathieu Longtin.
* Added support for SLOWLOG commands. Thanks Rick van Hattem.
* Added lexicographical commands ZRANGEBYLEX, ZREMRANGEBYLEX, and ZLEXCOUNT
for sorted sets.
* Connection objects now support an optional argument, socket_read_size,
indicating how much data to read during each socket.recv() call. After
benchmarking, increased the default size to 64k, which dramatically
improves performance when fetching large values, such as many results
in a pipeline or a large (>1MB) string value.
* Improved the pack_command and send_packed_command functions to increase
performance when sending large (>1MB) values.
* Sentinel Connections to master servers now detect when a READONLY error
is encountered and disconnect themselves and all other active connections
to the same master so that the new master can be discovered.
* Fixed Sentinel state parsing on Python 3.
* Added support for SENTINEL MONITOR, SENTINEL REMOVE, and SENTINEL SET
commands. Thanks Greg Murphy.
* INFO output that doesn't follow the "key:value" format will now be
appended to a key named "__raw__" in the INFO dictionary. Thanks Pedro
Larroy.
* The "vagrant" directory contains a complete vagrant environment for
redis-py developers. The environment runs a Redis master, a Redis slave,
and 3 Sentinels. Future iterations of the test suite will incorporate
more integration style tests, ensuring things like failover happen
correctly.
* It's now possible to create connection pool instances from a URL.
StrictRedis.from_url() now uses this feature to create a connection pool
instance and use that when creating a new client instance. Thanks
<https://github.com/chillipino>
* When creating client instances or connection pool instances from an URL,
it's now possible to pass additional options to the connection pool with
querystring arguments.
* Fixed a bug where some encodings (like utf-16) were unusable on Python 3
as command names and literals would get encoded.
* Added an SSLConnection class that allows for secure connections through
stunnel or other means. Construct an SSL connection with the ssl=True
option on client classes, using the rediss:// scheme from an URL, or
by passing the SSLConnection class to a connection pool's
connection_class argument. Thanks <https://github.com/oranagra>.
* Added a socket_connect_timeout option to control how long to wait while
establishing a TCP connection before timing out. This lets the client
fail fast when attempting to connect to a downed server while keeping
a more lenient timeout for all other socket operations.
* Added TCP Keep-alive support by passing use the socket_keepalive=True
option. Finer grain control can be achieved using the
socket_keepalive_options option which expects a dictionary with any of
the keys (socket.TCP_KEEPIDLE, socket.TCP_KEEPCNT, socket.TCP_KEEPINTVL)
and integers for values. Thanks Yossi Gottlieb.
* Added a `retry_on_timeout` option that controls how socket.timeout errors
are handled. By default it is set to False and will cause the client to
raise a TimeoutError anytime a socket.timeout is encountered. If
`retry_on_timeout` is set to True, the client will retry a command that
timed out once like other `socket.error`s.
* Completely refactored the Lock system. There is now a LuaLock class
that's used when the Redis server is capable of running Lua scripts along
with a fallback class for Redis servers < 2.6. The new locks fix several
subtle race consider that the old lock could face. In additional, a
new method, "extend" is available on lock instances that all a lock
owner to extend the amount of time they have the lock for. Thanks to
Eli Finkelshteyn and <https://github.com/chillipino> for contributions.

2.9.1

* IPv6 support. Thanks <https://github.com/amashinchi>

2.9.0

* Performance improvement for packing commands when using the PythonParser.
Thanks Guillaume Viot.
* Executing an empty pipeline transaction no longer sends MULTI/EXEC to
the server. Thanks EliFinkelshteyn.
* Errors when authenticating (incorrect password) and selecting a database
now close the socket.
* Full Sentinel support thanks to Vitja Makarov. Thanks!
* Better repr support for client and connection pool instances. Thanks
Mark Roberts.
* Error messages that the server sends to the client are now included
in the client error message. Thanks Sangjin Lim.
* Added the SCAN, SSCAN, HSCAN, and ZSCAN commands. Thanks Jingchao Hu.
* ResponseErrors generated by pipeline execution provide addition context
including the position of the command in the pipeline and the actual
command text generated the error.
* ConnectionPools now play nicer in threaded environments that fork. Thanks
Christian Joergensen.

2.8.0

* redis-py should play better with gevent when a gevent Timeout is raised.
Thanks leifkb.
* Added SENTINEL command. Thanks Anna Janackova.
* Fixed a bug where pipelines could potentially corrupt a connection
if the MULTI command generated a ResponseError. Thanks EliFinkelshteyn
for the report.
* Connections now call socket.shutdown() prior to socket.close() to
ensure communication ends immediately per the note at
<https://docs.python.org/2/library/socket.html#socket.socket.close>
Thanks to David Martin for pointing this out.
* Lock checks are now based on floats rather than ints. Thanks
Vitja Makarov.

2.7.6

* Added CONFIG RESETSTAT command. Thanks Yossi Gottlieb.
* Fixed a bug introduced in 2.7.3 that caused issues with script objects
and pipelines. Thanks Carpentier Pierre-Francois.
* Converted redis-py's test suite to use the awesome py.test library.
* Fixed a bug introduced in 2.7.5 that prevented a ConnectionError from
being raised when the Redis server is LOADING data.
* Added a BusyLoadingError exception that's raised when the Redis server
is starting up and not accepting commands yet. BusyLoadingError
subclasses ConnectionError, which this state previously returned.
Thanks Yossi Gottlieb.

2.7.5

* DEL, HDEL and ZREM commands now return the numbers of keys deleted
instead of just True/False.
* from_url now supports URIs with a port number. Thanks Aaron Westendorf.

Page 7 of 12

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.