| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* feat: adding support for cluster myshardid
* lint fix
* fix: comment fix and async test
* fix: adding version check
* fix lint:
* linters
---------
Co-authored-by: Anuragkillswitch <70265851+Anuragkillswitch@users.noreply.github.com>
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
Co-authored-by: dvora-h <dvora.heller@redis.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* add cluster "host_port_remap" feature for asyncio.RedisCluster
* Add a unittest for asyncio.RedisCluster
* Add host_port_remap to _sync_ RedisCluster
* add synchronous tests
* rename arg to `address_remap` and take and return an address tuple.
* Add class documentation
* Add CHANGES
|
|
|
|
|
|
|
|
|
|
|
|
| |
* add queue_class to REDIS_ALLOWED_KEYS
* fix lint
* fix lint
---------
Co-authored-by: zach.lee <zach.lee@sendbird.com>
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
|
| |
|
|
|
|
| |
Implement unlink() like delete() to make it work when
used in a cluster pipeline.
|
|
|
| |
Co-authored-by: zach.lee <zach.lee@sendbird.com>
|
|
|
| |
Co-authored-by: zach.lee <zach.lee@sendbird.com>
|
| |
|
|
|
|
|
| |
* add latency commands
* fix tests in cluster
|
|
|
|
| |
(#2463)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Cluster&AsyncCluster: Removed handling of timeouts/connection errors within the cluster loop, fixed "cannot pickle '_thread.lock' object" bug, added client's side failover handling improvements
* Fixed linters
* Type fixes
* Added to CHANGES
* Added getter and setter for the client's retry object and added more tests
* Fixed linters
* Fixed test
* Fixed test_client_kill test
* Changed get_default_backoff to default_backoff, removed retry_on_error and connection_error_retry_attempts from RedisCluster, default retry changed to no retries
* Fixing linters
* Reverting deletion of connection_error_retry_attempts to maintain backward compatibility
* Updating retry object for existing and new connections
* Changed the default value of reinitialize_steps from 10 to 5
* fix review comments
Co-authored-by: Chayim <chayim@users.noreply.github.com>
Co-authored-by: dvora-h <dvora.heller@redis.com>
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* A CredentialsProvider class has been added to allow the user to add his own provider for password rotation
* Moved CredentialsProvider to a separate file, added type hints
* Changed username and password to properties
* Added: StaticCredentialProvider, examples, tests
Changed: CredentialsProvider to CredentialProvider
Fixed: calling AUTH only with password
* Changed private members' prefix to __
* fixed linters
* fixed auth test
* fixed credential test
* Raise an error if username or password are passed along with credential_provider
* fixing linters
* fixing test
* Changed dundered to single per side underscore
* Changed Connection class members username and password to properties to enable backward compatibility with changing the members value on existing connection.
* Reverting last commit and adding backward compatibility to 'username' and 'password' inside on_connect function
* Refactored CredentialProvider class
* Fixing tuple type to Tuple
* Fixing optional string members in UsernamePasswordCredentialProvider
* Fixed credential test
* Added credential provider support to AsyncRedis
* linters
* linters
* linters
* linters - black
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
Co-authored-by: dvora-h <dvora.heller@redis.com>
|
|
|
| |
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* adds a retry that forces the nodes_manager to reinitialize if cluster pipleline connect to the one of the mapped nodes
* fix line length error
* add trailing comma
* move appending cmd
* updates changes
* trigger build
* fix linting errors
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* async_cluster: fix max_connections/ssl & improve args
- set proper connection_class if ssl = True
- pass max_connections/connection_class to ClusterNode
- recreate startup_nodes to properly initialize
- pass parser_class to Connection instead of changing it in on_connect
- only pass redis_connect_func if read_from_replicas = True
- add connection_error_retry_attempts parameter
- skip is_connected check in acquire_connection as it is already checked in send_packed_command
BREAKING:
- RedisCluster args except host & port are kw-only now
- RedisCluster will no longer accept unknown arguments
- RedisCluster will no longer accept url as an argument. Use RedisCluster.from_url
- RedisCluster.require_full_coverage defaults to True
- ClusterNode args except host, port, & server_type are kw-only now
* async_cluster: remove kw-only requirement from client
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* removed the logging module and its corresponding methods
* updated CHANGES
* except block for RedisClusterException and BusyLoadingError removed
* removed unused import (redis.exceptions.BusyLoadingError)
* empty commit to re-trigger Actions workflow
* replaced BaseException with Exception
* empty commit to re-trigger Actions workflow
* empty commit to re-trigger Actions workflow
* redundant logic removed
* re-trigger pipeline
* reverted changes
* re-trigger pipeline
* except logic changed
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* docs: Fix a few typos
There are small typos in:
- redis/cluster.py
- redis/commands/core.py
- redis/ocsp.py
- tests/test_cluster.py
Fixes:
- Should read `validity` rather than `valididy`.
- Should read `reinitialize` rather than `reinitilize`.
- Should read `farthest` rather than `farest`.
- Should read `commands` rather than `comamnds`.
* Update core.py
|
|
|
|
|
|
| |
- allow passing target_nodes to pipeline commands
- move READ_COMMANDS to commands/cluster to avoid import cycle
- add types to list_or_args
|
|
|
|
| |
backward compatibility (#2251)
|
|
|
|
|
|
|
|
|
| |
* Added dynamic_startup_nodes configuration to RedisCluster. By default, uses only the initial passed startup nodes to refresh the cluster topology. If set to true, sets the startup nodes to all of the discovered nodes.
* Added RedisCluster specific options to the README file and updated CHANGES
* Fixed timeout_error_topology_refresh test
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
done (#2235)
* A fix was made to reuse the old nodes' connections when a cluster topology refresh is being done
* Fixed RedisCluster to immediately raise AuthenticationError
* Updated CHANGES
* Fixed cluster async bgsave test to ignore "bgsave already in progress" error
* Fixed linters
|
|
|
|
|
|
|
|
|
| |
* Made sync lock consistent and added types to it
* Made linters happy
* Fixed cluster client lock signature
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
|
|
|
|
|
| |
* fix tests
* async
|
|
|
| |
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
|
|
|
|
|
|
|
| |
* async_cluster: add/update typing
* async_cluster: update cleanup_kwargs with kwargs from async Connection
* async_cluster: properly remove old nodes
|
|
|
|
|
|
|
|
|
|
|
| |
* ClusterPipeline needs to initialize self._lock, otherwise a class instance will fail when calling get_redis_connection on the node
* fix bad lint picked up from master
* added change to CHANGES file
* force ci build again
* force ci build again
|
|
|
|
|
| |
* parse subcommands
* fix tests
|
|
|
|
|
|
|
|
|
| |
* Add support for CLUSTER SHARDS
* linters
* add docstring
* linters
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Copy Cluster Client, Commands, Commands Parser, Tests for asyncio
* Async Cluster Tests: Async/Await
* Add Async RedisCluster
* cluster: use ERRORS_ALLOW_RETRY from self.__class__
* async_cluster: rework redis_connection, initialize, & close
- move redis_connection from NodesManager to ClusterNode & handle all related logic in ClusterNode class
- use Locks while initializing or closing
- in case of error, close connections instead of instantly reinitializing
- create ResourceWarning instead of manually deleting client object
- use asyncio.gather to run commands/initialize/close in parallel
- inline single use functions
- fix test_acl_log for py3.6
* async_cluster: add types
* async_cluster: add docs
* docs: update sphinx & add sphinx_autodoc_typehints
* async_cluster: move TargetNodesT to cluster module
* async_cluster/commands: inherit commands from sync class if possible
* async_cluster: add benchmark script with aredis & aioredis-cluster
* async_cluster: remove logging
* async_cluster: inline functions
* async_cluster: manage Connection instead of Redis Client
* async_cluster/commands: optimize parser
* async_cluster: use ensure_future & generators for gather
* async_conn: optimize
* async_cluster: optimize determine_slot
* async_cluster: optimize determine_nodes
* async_cluster/parser: optimize _get_moveable_keys
* async_cluster: inlined check_slots_coverage
* async_cluster: update docstrings
* async_cluster: add concurrent test & use read_response/_update_moved_slots without lock
Co-authored-by: Chayim <chayim@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
| |
* cluster/scan: fix return cursor & change default node to primaries
* cluster/scan_iter: fix iteration
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
| |
* Add support for SEARCH commands in cluster
* delete json tests mark & list search commands
* linters
|
|
|
|
|
|
|
|
|
| |
* ssl string cert
* fix async test
* linters
* change test name
|
|
|
|
|
|
|
|
|
|
|
| |
* delslotsrange
* test
* linters
* skip test
* linters
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* add cluster addslotsrange
* Add support for CLUSTER ADDSLOTSRANGE
* docstring
* fix test
* skip test
* linters
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cluster support for functions
* fix test_list_on_cluster mark
* fix mark
* cluster unstable url
* fix
* fix cluster url
* skip tests
* linters
* linters
|
|
|
| |
Co-authored-by: Chayim <chayim@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add support for AUTH
* Fix linter error
* test fix
* fix test in cluster
Co-authored-by: Chayim <chayim@users.noreply.github.com>
Co-authored-by: Chayim I. Kirshen <c@kirshen.com>
Co-authored-by: dvora-h <dvora.heller@redis.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add support for .lock() for RedisCluster
* Update changelog with lua scripting and lock() changes
* Also update asyncio client .lock() doc
* Add Python 3.6 back to hash verify CI (#2008)
* Renaming chore as maintenance (#2015)
* Add AsyncFunctionCommands (#2009)
* Also update asyncio client .lock() doc
Co-authored-by: Chayim <chayim@users.noreply.github.com>
Co-authored-by: Andrew Chen Wang <60190294+Andrew-Chen-Wang@users.noreply.github.com>
Co-authored-by: dvora-h <dvora.heller@redis.com>
|
|
|
|
|
|
|
|
|
|
|
| |
* Add cluster support for scripting
* Fall back to connection_pool.get_encoder if necessary
* Add documentation for cluster-based scripting
* Add test for flush response
Co-authored-by: dvora-h <dvora.heller@redis.com>
|
|
|
|
| |
(#1985)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Fix flushdb and flushall
Both commands should be broadcasted to all the shards.
* Support ssl_password on cluster
* linter fix
* change commands to run only on primary nodes
Co-authored-by: Chayim I. Kirshen <c@kirshen.com>
Co-authored-by: dvora-h <dvora.heller@redis.com>
|
| |
|
| |
|
| |
|
|
|
|
| |
fully covered (#1819)
|
| |
|
| |
|