| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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>
|
|
|
|
|
| |
* cleaning up the readme and moving docs into readthedocs
* examples at the end as per pr comments
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* grpah - add counters for removed labels and properties
* added mock graph result set statistics
* docstrings for graph result set statistics
* format
* isort
* moved docstrings into functions
|
|
|
|
|
|
|
| |
* Changed start_id type for xautoclaim
* Added to changes
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add support for timeseries 1.8
* fix info
* linters
* linters
* fix info test
* type hints
* linters
|
|
|
| |
- each pipeline should create separate stacks for each node
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
| |
* fix expire while search
* sleep
|
|
|
| |
Fixes #2237
|
| |
|
| |
|
| |
|
|
|
|
|
| |
* fix parse_xautoclaim
* linters
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
|
| |
* Avoid mutating a global retry_on_error list
* Make retries config consistent in sync and async
* Fix async retries
* Add new TestConnectionConstructorWithRetry tests
|
|
|
| |
- close startup_nodes too during client.close(), in case they are different
|
| |
|
|
|
|
|
| |
* fix lock
* v4.3.3
|
|
|
|
| |
- move response_callbacks kwarg inside __init__ to hide it from docs
- use :member-order: bysource to group similar commands together
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* add support for NOW, FORCE and ABORT modifiers
* linters
* test
* linters
* test params
* fix tests
Co-authored-by: Chayim <chayim@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
| |
* 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>
|
|
|
|
|
|
|
|
|
|
| |
- return true from execute_pipeline if there are any errors
- use todo list to speedup retries
- store initialisation node in CommandsParser object
- add sync context manager for pipeline
- use if/else instead of try/except
- make command a function argument in _determine_nodes & _determine_slot
- add async cluster pipeline benchmark script
|
|
|
|
|
|
|
| |
* ft.profile query_params
* fix pr comments
* type hints
|
|
|
|
|
| |
* fix tests
* async
|
|
|
|
|
|
|
|
| |
* Add default None for maxlen at xtrim command
* Fix linter
Co-authored-by: Mikhail Fedorov <mfgnik@yandex.team.ru>
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
| |
* set default response_callbacks to redis.asyncio.cluster.ClusterNode
* add test case for ClusterNode class
* fix lint error
* merge test case into `test_startup_nodes`
|
|
|
|
|
|
|
| |
* Support CF.MEXISTS
* Clean bf/commands.py
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
|
|
|
|
|
|
|
| |
* force triggering pr pipeline
* fix lint error
* https://github.com/RedisJSON/RedisJSON/pull/721 no longer clears strings or boolean scalars
|
| |
|
|
|
|
|
| |
* fix incorrect test
* Fix types
|
| |
|
|
|
|
|
| |
* parse subcommands
* fix tests
|
|
|
|
|
|
|
|
|
| |
* Add support for CLUSTER SHARDS
* linters
* add docstring
* linters
|
|
|
|
|
| |
* Add support for COMMAND LIST
* style change
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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>
|
|
|
|
|
|
|
| |
* Replace OSError exceptions from `can_read` with `redis.ConnectionError`
* Fix formatting
* Revert unintended formatting change
|
|
|
|
|
|
|
| |
* acl setuser
* async tests
Co-authored-by: Chayim <chayim@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* xadd
* streams redis 7
* linters
* test xinfo stream
* test xinfo stream
* test xclaim
|
| |
|
|
|
|
|
| |
NoReturn should be used only when the function never returns. In this case, the awaitable returns None if releasing the lock succeeds, so `Awaitable[None]` is right.
Noticed this while reviewing python/typeshed#7676
|