Skip to content
This repository has been archived by the owner on Jan 9, 2024. It is now read-only.

2.1.0

Compare
Choose a tag to compare
@Grokzen Grokzen released this 25 Sep 23:10
· 26 commits to master since this release

2.1.0 (September 26, 2020)

This content can also be found in docs/release-notes.rst

* Add new config option for Client and Pipeline classes to controll how many attempts will be made before bailing out from a ClusterDownError.
  Use "cluster_down_retry_attempts=<int>" when creating the client class to controll this behaviour.
* Updated redis-py compatbile version to support any version in the major version 3.0.x, 3.1.x, 3.2.x, 3.3.x., 3.4.x, 3.5.x (#326)
  It is always recommended to use the latest version of redis-py to avoid issues and compatiblity problems.
* Fixed bug preventing reinitialization after getting MOVED errors
* Add testing of redis-esrver 6.0 versions to travis and unit tests
* Add python 2.7 compatiblity note about deprecation and upcomming changes in python 2.7 support for this lib
* Updated tests and cluster tests versions of the same methods to latest tests from upstream redis-py package
* Reorganized tests and how cluster specific tests is written and run over the upstream version of the same test to make it easier
  and much faster to update and keep them in sync over time going into the future (#368)
* Python 3.5.x or higher is now required if running on a python 3 version
* Removed the monkeypatching of RedisCluster, ClusterPubSub & ClusterPipeline class names into the "redis" python package namespace during runtime.
  They are now exposed in the "rediscluster" namespace to mimic the same feature from redis-py
* cluster_down_retry_attempts can now be configured to any value when creating RedisCluster instance
* Creating RedisCluster from unix socket url:s has been disabled
* Patch the from_url method to use the corret cluster version of the same Connection class
* ConnectionError and TimeoutError is now handled seperately in the main execute loop to better handle each case (#363)
* Update scan_iter custom cluster implementation
* Improve description_format handling for connection classes to simplify how they work
* Implement new connection pool ClusterBlockingConnectionPool (#347)
* Nodemanager initiailize should now handle usernames properly (#365)
* PubSub tests has been all been disabled
* New feature, host_port_remap. Send in a remapping configuration to RedisCluster instance where the nodes configuration recieved from the redis cluster can be altered to allow for connection in certain circumstances. See new section in client.rst in docs/ for usage example.
* When a slot is not covered by the cluster, it will not raise SlotNotCoveredError instead of the old generic RedisClusterException. The client will not attempt to rebuild the cluster layout a few times before giving up and raising that exception to the user. (#350)
* CLIENT SETNAME is now possible to use from the client instance. For setting the name for all connections from the client by default, see issue #802 in redis-py repo for the change that was implemented in redis-py 3.4.0.
* Rewrote implemented commands documentation to mimic the redis.io commands documentation and describe each command and any additional implementation that has been made.
* Added RTD theme to the rendered output when running the documentation in local dev mode. 
* Added some basic logging to the client that should make it easier to debug and track down minor issues around the main execution loop. See docs/logging.rst for implementation example into your own code.
* Seperated some of the exception handling inside the main execution loop to get more fine grained controll what to do at certain errors.