Skip to content

Commit 2732a85

Browse files
dvora-hchayimleibalebellini666woutdenolf
authored
Merge 5.0 to master (#2849)
* Reorganizing the parsers code, and add support for RESP3 (#2574) * Reorganizing the parsers code * fix build package * fix imports * fix flake8 * add resp to Connection class * core commands * python resp3 parser * pipeline * async resp3 parser * some asymc tests * resp3 parser for async cluster * async commands tests * linters * linters * linters * fix ModuleNotFoundError * fix tests * fix assert_resp_response_in * fix command_getkeys in cluster * fail-fast false * version --------- Co-authored-by: Chayim I. Kirshen <[email protected]> * Fix async client with resp3 (#2657) * Add support for PubSub with RESP3 parser (#2721) * add resp3 pubsub * linters * _set_info_logger func * async pubsun * docstring * 5.0.0b2 (#2723) * Fix `COMMAND` response in resp3 (redis 7+) (#2740) * Fix protocol version checking (#2737) * bumping beta version to 5.0.0b3 (#2743) * Fix parse resp3 dict response: don't use dict comprehension (#2757) * Fix parse respp3 dict response * linters * pin urlib version * Sharded pubsub (#2762) * sharded pubsub * sharded pubsub Co-authored-by: Leibale Eidelman <[email protected]> * Shrded Pubsub TestPubSubSubscribeUnsubscribe * fix TestPubSubSubscribeUnsubscribe * more tests * linters * TestPubSubSubcommands * fix @leibale comments * linters * fix @chayim comments --------- Co-authored-by: Leibale Eidelman <[email protected]> * 5.0.0b4 (#2781) Co-authored-by: dvora-h <[email protected]> * RESP3 tests (#2780) * fix command response in resp3 * linters * acl_log & acl_getuser * client_info * test_commands and test_asyncio/test_commands * fix test_command_parser * fix asyncio/test_connection/test_invalid_response * linters * all the tests * push handler sharded pubsub * Use assert_resp_response wherever possible * fix test_xreadgroup * fix cluster_zdiffstore and cluster_zinter * fix review comments * fix review comments * linters * Fixing asyncio import (#2759) * asyncio import fix * pinning urllib3 to fix CI (#2748) * noqa * fixint linters * fix (#2799) * RESP3 response callbacks (#2798) * start cleaning * clean sone callbacks * response callbacks * revert redismod-url change * fix async tests * linters * async cluster --------- Co-authored-by: Chayim <[email protected]> * RESP3 modules support (#2803) * start cleaning * clean sone callbacks * response callbacks * modules * tests * finish sync search tests * linters * async modules * linters * revert redismod-url change * RESP3 fix async tests (#2806) * fix tests * add stralgo callback in resp2 * add callback to acl list in resp2 * Adding RESP3 tests support (#2793) * start cleaning * clean sone callbacks * first phase * tox wrap back * changing cancel format * syntax * lint * docker * contain the docker * tox dev reqs * back to testing * response callbacks * protocol into async conftest * fix for 3.11 invoke * docker changes * fix tests * linters * adding * resp3 tox, until killed * remove tox * tests * requirements.txt * restoring requirements.txt * adding a sleep, hopefully enough time for the cluster dockers to settle * fix search tests * search test, disable uvloop for pypy due to bug * syn * reg * dialect test improvement * sleep+, xfail * tests * resp * flaky search test too * timing * timing for async test * test changes * fix assert_interval_advanced * revert * mark async health_check tests with xfail * change strict to false * fix github actions package validation --------- Co-authored-by: dvora-h <[email protected]> * change sismember return type (#2813) * Version 5.0.0rc1 (#2815) * Merge master to 5.0 (#2827) * fix: do not use asyncio's timeout lib before 3.11.2 (#2659) There's an issue in asyncio's timeout lib before 3.11.3 that causes async calls to raise `CancelledError`. This is a cpython issue that was fixed in this commit [1] and cherry-picked to previous versions, meaning 3.11.3 will work correctly. Check [2] for more info. [1] python/cpython@04adf2d [2] #2633 * UnixDomainSocketConnection missing constructor argument (#2630) * removing useless files (#2642) * Fix issue 2660: PytestUnraisableExceptionWarning from asycio client (#2669) * Fixing cancelled async futures (#2666) Co-authored-by: James R T <[email protected]> Co-authored-by: dvora-h <[email protected]> * Fix async (#2673) * Version 4.5.4 (#2674) * Really do not use asyncio's timeout lib before 3.11.2 (#2699) 4802530 made async-timeout required only on Python 3.11.2 and earlier. However, according to PEP-508, python_version marker is compared to first two numbers of Python version tuple - so it will evaluate to True also on 3.11.3, and install a package as a dependency. * asyncio: Fix memory leak caused by hiredis (#2693) (#2694) * Update example of Redisearch creating index (#2703) When creating index, fields should be passed inside an iterable (e.g. list or tuple) * Improving Vector Similarity Search Example (#2661) * update vss docs * add embeddings creation and storage examples * update based on feedback * fix version and link * include more realistic search examples and clean up indices * completely remove initial cap reference --------- Co-authored-by: Chayim <[email protected]> * Fix incorrect usage of once flag in async Sentinel (#2718) In the execute_command of the async Sentinel, the once flag was being used incorrectly, with its meaning inverted. To fix we just needed to invert the if and else bodies. This isn't being caught by the tests currently because the tests of commands that use this flag do not check their results/effects (for example the "test_ckquorum" test). * Fix topk list example. (#2724) * Improve error output for master discovery (#2720) Make MasterNotFoundError exception more precise in the case of ConnectionError and TimeoutError to help the user to identify configuration errors Co-authored-by: Marc Schöchlin <[email protected]> * return response in case of KeyError (#2628) * return response in case of KeyError * fix code linters error * fix linters 2 * fix linters 3 * Add WITHSCORES to ZREVRANK Command (#2725) * add withscores to zrevrank * change 0 -> 2 * fix errors * split test * Fix `ClusterCommandProtocol` not itself being marked as a protocol (#2729) * Fix `ClusterCommandProtocol` not itself being marked as a protocol * Update CHANGES * Fix potential race condition during disconnection (#2719) When the disconnect() function is called twice in parallel it is possible that one thread deletes the self._sock reference, while the other thread will attempt to call .close() on it, leading to an AttributeError. This situation can routinely be encountered by closing the connection in a PubSubWorkerThread error handler in a blocking thread (ie. with sleep_time==None), and then calling .close() on the PubSub object. The main thread will then run into the disconnect() function, and the listener thread is woken up by the closure and will race into the disconnect() function, too. This can be fixed easily by copying the object reference before doing the None-check, similar to what we do in the redis.client.close() function. * add "address_remap" feature to RedisCluster (#2726) * 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 * nermina changes from NRedisStack (#2736) * Updated AWS Elasticache IAM Connection Example (#2702) Co-authored-by: Nick Gerow <[email protected]> * pinning urllib3 to fix CI (#2748) * Add RedisCluster.remap_host_port, Update tests for CWE 404 (#2706) * Use provided redis address. Bind to IPv4 * Add missing "await" and perform the correct test for pipe eimpty * Wait for a send event, rather than rely on sleep time. Excpect cancel errors. * set delay to 0 except for operation we want to cancel This speeds up the unit tests considerably by eliminating unnecessary delay. * Release resources in test * Fix cluster test to use address_remap and multiple proxies. * Use context manager to manage DelayProxy * Mark failing pipeline tests * lint * Use a common "master_host" test fixture * Update redismodules.rst (#2747) Co-authored-by: dvora-h <[email protected]> * Add support for cluster myshardid (#2704) * 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 <[email protected]> Co-authored-by: dvora-h <[email protected]> Co-authored-by: dvora-h <[email protected]> * clean warnings (#2731) * fix parse_slowlog_get (#2732) * Optionally disable disconnects in read_response (#2695) * Add regression tests and fixes for issue #1128 * Fix tests for resumable read_response to use "disconnect_on_error" * undo prevision fix attempts in async client and cluster * re-enable cluster test * Suggestions from code review * Add CHANGES * Add client no-touch (#2745) * Add client no-touch * Update redis/commands/core.py Co-authored-by: dvora-h <[email protected]> * Update test_commands.py Improve test_client_no_touch * Update test_commands.py Add async version test case * Chore remove whitespace Oops --------- Co-authored-by: dvora-h <[email protected]> * fix create single_connection_client from url (#2752) * Fix `xadd` allow non negative maxlen (#2739) * Fix xadd allow non negative maxlen * Update change log --------- Co-authored-by: dvora-h <[email protected]> * Version 4.5.5 (#2753) * Kristjan/issue #2754: Add missing argument to SentinelManagedConnection.read_response() (#2756) * Increase timeout for a test which would hang completely if failing. Timeouts in virtualized CI backends can occasionally fail if too short. * add "disconnect_on_error" argument to SentinelManagedConnection * update Changes * lint * support JSON.MERGE Command (#2761) * support JSON.MERGE Command * linters * try with abc instead person * change @skip_ifmodversion_lt to latest ReJSON 2.4.7 * change version * fix test * linters * add async test * Issue #2749: Remove unnecessary __del__ handlers (#2755) * Remove unnecessary __del__ handlers There normally should be no logic attached to del. Cleanly disconnecting network resources is not needed at that time. * add CHANGES * Add WITHSCORE to ZRANK (#2758) * add withscore to zrank with tests * fix test * Fix JSON.MERGE Summary (#2786) * Fix JSON.MERGE Summary * linters * Fixed key error in parse_xinfo_stream (#2788) * insert newline to prevent sphinx from assuming code block (#2796) * Introduce OutOfMemoryError exception for Redis write command rejections due to OOM errors (#2778) * expose OutOfMemoryError as explicit exception type - handle "OOM" error code string by raising explicit exception type instance - enables callers to avoid string matching after catching ResponseError * add OutOfMemoryError exception class docstring * Provide more info in the exception docstring * Fix formatting * Again * linters --------- Co-authored-by: Chayim <[email protected]> Co-authored-by: Igor Malinovskiy <[email protected]> Co-authored-by: dvora-h <[email protected]> * Add unit tests for the `connect` method of all Redis connection classes (#2631) * tests: move certificate discovery to a separate module * tests: add 'connect' tests for all Redis connection classes --------- Co-authored-by: dvora-h <[email protected]> * Fix dead weakref in sentinel connection causing ReferenceError (#2767) (#2771) * Fix dead weakref in sentinel conn (#2767) * Update CHANGES --------- Co-authored-by: Igor Malinovskiy <[email protected]> Co-authored-by: dvora-h <[email protected]> * chore(documentation): fix redirects and some small cleanups (#2801) * Add waitaof (#2760) * Add waitaof * Update test_commands.py add test_waitaof * Update test_commands.py Add test_waitaof * Fix doc string --------- Co-authored-by: Chayim <[email protected]> Co-authored-by: Igor Malinovskiy <[email protected]> * Extract abstract async connection class (#2734) * make 'socket_timeout' and 'socket_connect_timeout' equivalent for TCP and UDS connections * abstract asynio connection in analogy with the synchronous connection --------- Co-authored-by: dvora-h <[email protected]> * Fix type hint for retry_on_error in async cluster (#2804) * fix(asyncio.cluster): fixup retry_on_error type hint This parameter accepts a list of _classes of Exceptions_, not a list of instantiated Exceptions. Fixup the type hint accordingly. * chore: update changelog --------- Co-authored-by: dvora-h <[email protected]> * Fix CI (#2809) * Support JSON.MSET Command (#2766) * support JSON.MERGE Command * linters * try with abc instead person * change @skip_ifmodversion_lt to latest ReJSON 2.4.7 * change version * fix test * linters * add async test * Support JSON.MSET command * trying to run CI * linters * add async test * reminder do delete the integration changes * delete the line from integration * fix the interface * change docstring --------- Co-authored-by: Chayim <[email protected]> Co-authored-by: dvora-h <[email protected]> * Version 4.6.0 (#2810) * master changes * linters * fix test_cwe_404 cluster test --------- Co-authored-by: Thiago Bellini Ribeiro <[email protected]> Co-authored-by: woutdenolf <[email protected]> Co-authored-by: Chayim <[email protected]> Co-authored-by: shacharPash <[email protected]> Co-authored-by: James R T <[email protected]> Co-authored-by: Mirek Długosz <[email protected]> Co-authored-by: Oran Avraham <[email protected]> Co-authored-by: mzdehbashi-github <[email protected]> Co-authored-by: Tyler Hutcherson <[email protected]> Co-authored-by: Felipe Machado <[email protected]> Co-authored-by: AYMEN Mohammed <[email protected]> Co-authored-by: Marc Schöchlin <[email protected]> Co-authored-by: Marc Schöchlin <[email protected]> Co-authored-by: Avasam <[email protected]> Co-authored-by: Markus Gerstel <[email protected]> Co-authored-by: Kristján Valur Jónsson <[email protected]> Co-authored-by: Nick Gerow <[email protected]> Co-authored-by: Nick Gerow <[email protected]> Co-authored-by: Cristian Matache <[email protected]> Co-authored-by: Anurag Bandyopadhyay <[email protected]> Co-authored-by: Anuragkillswitch <[email protected]> Co-authored-by: Seongchuel Ahn <[email protected]> Co-authored-by: Alibi <[email protected]> Co-authored-by: Smit Parmar <[email protected]> Co-authored-by: Brad MacPhee <[email protected]> Co-authored-by: Igor Malinovskiy <[email protected]> Co-authored-by: Shahar Lev <[email protected]> Co-authored-by: Vladimir Mihailenco <[email protected]> Co-authored-by: Kevin James <[email protected]> * RESP3 response-callbacks cleanup (#2841) * cluenup * sentinel callbacks * move callbacks * fix async cluster tests * _parsers and import fix in tests * linters * make modules callbacks private * fix async search * fix --------- Co-authored-by: Chayim I. Kirshen <[email protected]> * Version 5.0.0rc2 (#2843) * linters --------- Co-authored-by: Chayim I. Kirshen <[email protected]> Co-authored-by: Chayim <[email protected]> Co-authored-by: Leibale Eidelman <[email protected]> Co-authored-by: Thiago Bellini Ribeiro <[email protected]> Co-authored-by: woutdenolf <[email protected]> Co-authored-by: shacharPash <[email protected]> Co-authored-by: James R T <[email protected]> Co-authored-by: Mirek Długosz <[email protected]> Co-authored-by: Oran Avraham <[email protected]> Co-authored-by: mzdehbashi-github <[email protected]> Co-authored-by: Tyler Hutcherson <[email protected]> Co-authored-by: Felipe Machado <[email protected]> Co-authored-by: AYMEN Mohammed <[email protected]> Co-authored-by: Marc Schöchlin <[email protected]> Co-authored-by: Marc Schöchlin <[email protected]> Co-authored-by: Avasam <[email protected]> Co-authored-by: Markus Gerstel <[email protected]> Co-authored-by: Kristján Valur Jónsson <[email protected]> Co-authored-by: Nick Gerow <[email protected]> Co-authored-by: Nick Gerow <[email protected]> Co-authored-by: Cristian Matache <[email protected]> Co-authored-by: Anurag Bandyopadhyay <[email protected]> Co-authored-by: Anuragkillswitch <[email protected]> Co-authored-by: Seongchuel Ahn <[email protected]> Co-authored-by: Alibi <[email protected]> Co-authored-by: Smit Parmar <[email protected]> Co-authored-by: Brad MacPhee <[email protected]> Co-authored-by: Igor Malinovskiy <[email protected]> Co-authored-by: Shahar Lev <[email protected]> Co-authored-by: Vladimir Mihailenco <[email protected]> Co-authored-by: Kevin James <[email protected]>
1 parent 9f50357 commit 2732a85

File tree

145 files changed

+9187
-5912
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

145 files changed

+9187
-5912
lines changed

.flake8

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
[flake8]
2+
max-line-length = 88
3+
exclude =
4+
*.egg-info,
5+
*.pyc,
6+
.git,
7+
.tox,
8+
.venv*,
9+
build,
10+
docs/*,
11+
dist,
12+
docker,
13+
venv*,
14+
.venv*,
15+
whitelist.py,
16+
tasks.py
17+
ignore =
18+
F405
19+
W503
20+
E203
21+
E126

.github/workflows/integration.yaml

+62-13
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ on:
1616
schedule:
1717
- cron: '0 1 * * *' # nightly build
1818

19+
concurrency:
20+
group: ${{ github.event.pull_request.number || github.ref }}
21+
cancel-in-progress: true
22+
1923
permissions:
2024
contents: read # to fetch code (actions/checkout)
2125

@@ -48,7 +52,7 @@ jobs:
4852
4953
run-tests:
5054
runs-on: ubuntu-latest
51-
timeout-minutes: 30
55+
timeout-minutes: 60
5256
strategy:
5357
max-parallel: 15
5458
fail-fast: false
@@ -68,32 +72,77 @@ jobs:
6872
- name: run tests
6973
run: |
7074
pip install -U setuptools wheel
75+
pip install -r requirements.txt
7176
pip install -r dev_requirements.txt
72-
tox -e ${{matrix.test-type}}-${{matrix.connection-type}}
77+
if [ "${{matrix.connection-type}}" == "hiredis" ]; then
78+
pip install hiredis
79+
fi
80+
invoke devenv
81+
sleep 5 # time to settle
82+
invoke ${{matrix.test-type}}-tests
83+
7384
- uses: actions/upload-artifact@v2
7485
if: success() || failure()
7586
with:
76-
name: pytest-results-${{matrix.test-type}}
87+
name: pytest-results-${{matrix.test-type}}-${{matrix.connection-type}}-${{matrix.python-version}}
7788
path: '${{matrix.test-type}}*results.xml'
89+
7890
- name: Upload codecov coverage
7991
uses: codecov/codecov-action@v3
92+
if: ${{matrix.python-version == '3.11'}}
8093
with:
8194
fail_ci_if_error: false
82-
# - name: View Test Results
83-
# uses: dorny/test-reporter@v1
84-
# if: success() || failure()
85-
# with:
86-
# name: Test Results ${{matrix.python-version}} ${{matrix.test-type}}-${{matrix.connection-type}}
87-
# path: '${{matrix.test-type}}*results.xml'
88-
# reporter: java-junit
89-
# list-suites: failed
90-
# list-tests: failed
91-
# max-annotations: 10
95+
96+
- name: View Test Results
97+
uses: dorny/test-reporter@v1
98+
if: success() || failure()
99+
continue-on-error: true
100+
with:
101+
name: Test Results ${{matrix.python-version}} ${{matrix.test-type}}-${{matrix.connection-type}}
102+
path: '*.xml'
103+
reporter: java-junit
104+
list-suites: all
105+
list-tests: all
106+
max-annotations: 10
107+
fail-on-error: 'false'
108+
109+
resp3_tests:
110+
runs-on: ubuntu-latest
111+
strategy:
112+
fail-fast: false
113+
matrix:
114+
python-version: ['3.7', '3.11']
115+
test-type: ['standalone', 'cluster']
116+
connection-type: ['hiredis', 'plain']
117+
protocol: ['3']
118+
env:
119+
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
120+
name: RESP3 [${{ matrix.python-version }} ${{matrix.test-type}}-${{matrix.connection-type}}]
121+
steps:
122+
- uses: actions/checkout@v3
123+
- uses: actions/setup-python@v4
124+
with:
125+
python-version: ${{ matrix.python-version }}
126+
cache: 'pip'
127+
- name: run tests
128+
run: |
129+
pip install -U setuptools wheel
130+
pip install -r requirements.txt
131+
pip install -r dev_requirements.txt
132+
if [ "${{matrix.connection-type}}" == "hiredis" ]; then
133+
pip install hiredis
134+
fi
135+
invoke devenv
136+
sleep 5 # time to settle
137+
invoke ${{matrix.test-type}}-tests
138+
invoke ${{matrix.test-type}}-tests --uvloop
92139
93140
build_and_test_package:
94141
name: Validate building and installing the package
95142
runs-on: ubuntu-latest
143+
needs: [run-tests]
96144
strategy:
145+
fail-fast: false
97146
matrix:
98147
extension: ['tar.gz', 'whl']
99148
steps:

.isort.cfg

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[settings]
2+
profile=black
3+
multi_line_output=3
4+
src_paths = ["redis", "tests"]
5+
skip_glob=benchmarks/*

CONTRIBUTING.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ Here's how to get started with your code contribution:
3838
a. python -m venv .venv
3939
b. source .venv/bin/activate
4040
c. pip install -r dev_requirements.txt
41+
c. pip install -r requirements.txt
4142

42-
4. If you need a development environment, run `invoke devenv`
43+
4. If you need a development environment, run `invoke devenv`. Note: this relies on docker-compose to build environments, and assumes that you have a version supporting [docker profiles](https://docs.docker.com/compose/profiles/).
4344
5. While developing, make sure the tests pass by running `invoke tests`
4445
6. If you like the change and think the project could use it, send a
4546
pull request
@@ -59,7 +60,6 @@ can execute docker and its various commands.
5960
- Three sentinel Redis nodes
6061
- A redis cluster
6162
- An stunnel docker, fronting the master Redis node
62-
- A Redis node, running unstable - the latest redis
6363

6464
The replica node, is a replica of the master node, using the
6565
[leader-follower replication](https://redis.io/topics/replication)

benchmarks/socket_read_size.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
from base import Benchmark
22

3-
from redis.connection import HiredisParser, PythonParser
3+
from redis.connection import PythonParser, _HiredisParser
44

55

66
class SocketReadBenchmark(Benchmark):
77

88
ARGUMENTS = (
9-
{"name": "parser", "values": [PythonParser, HiredisParser]},
9+
{"name": "parser", "values": [PythonParser, _HiredisParser]},
1010
{
1111
"name": "value_size",
1212
"values": [10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000],

dev_requirements.txt

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
click==8.0.4
22
black==22.3.0
33
flake8==5.0.4
4+
flake8-isort==6.0.0
45
flynt~=0.69.0
5-
isort==5.10.1
66
mock==4.0.3
77
packaging>=20.4
88
pytest==7.2.0
9-
pytest-timeout==2.0.1
9+
pytest-timeout==2.1.0
1010
pytest-asyncio>=0.20.2
1111
tox==3.27.1
12-
tox-docker==3.1.0
1312
invoke==1.7.3
1413
pytest-cov>=4.0.0
1514
vulture>=2.3.0

docker-compose.yml

+109
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
---
2+
3+
version: "3.8"
4+
5+
services:
6+
7+
redis:
8+
image: redis/redis-stack-server:edge
9+
container_name: redis-standalone
10+
ports:
11+
- 6379:6379
12+
environment:
13+
- "REDIS_ARGS=--enable-debug-command yes --enable-module-command yes"
14+
profiles:
15+
- standalone
16+
- sentinel
17+
- replica
18+
- all
19+
20+
replica:
21+
image: redis/redis-stack-server:edge
22+
container_name: redis-replica
23+
depends_on:
24+
- redis
25+
environment:
26+
- "REDIS_ARGS=--replicaof redis 6379"
27+
ports:
28+
- 6380:6379
29+
profiles:
30+
- replica
31+
- all
32+
33+
cluster:
34+
container_name: redis-cluster
35+
build:
36+
context: .
37+
dockerfile: dockers/Dockerfile.cluster
38+
ports:
39+
- 16379:16379
40+
- 16380:16380
41+
- 16381:16381
42+
- 16382:16382
43+
- 16383:16383
44+
- 16384:16384
45+
volumes:
46+
- "./dockers/cluster.redis.conf:/redis.conf:ro"
47+
profiles:
48+
- cluster
49+
- all
50+
51+
stunnel:
52+
image: redisfab/stunnel:latest
53+
depends_on:
54+
- redis
55+
ports:
56+
- 6666:6666
57+
profiles:
58+
- all
59+
- standalone
60+
- ssl
61+
volumes:
62+
- "./dockers/stunnel/conf:/etc/stunnel/conf.d:ro"
63+
- "./dockers/stunnel/keys:/etc/stunnel/keys:ro"
64+
65+
sentinel:
66+
image: redis/redis-stack-server:edge
67+
container_name: redis-sentinel
68+
depends_on:
69+
- redis
70+
environment:
71+
- "REDIS_ARGS=--port 26379"
72+
entrypoint: "/opt/redis-stack/bin/redis-sentinel /redis.conf --port 26379"
73+
ports:
74+
- 26379:26379
75+
volumes:
76+
- "./dockers/sentinel.conf:/redis.conf"
77+
profiles:
78+
- sentinel
79+
- all
80+
81+
sentinel2:
82+
image: redis/redis-stack-server:edge
83+
container_name: redis-sentinel2
84+
depends_on:
85+
- redis
86+
environment:
87+
- "REDIS_ARGS=--port 26380"
88+
entrypoint: "/opt/redis-stack/bin/redis-sentinel /redis.conf --port 26380"
89+
ports:
90+
- 26380:26380
91+
volumes:
92+
- "./dockers/sentinel.conf:/redis.conf"
93+
profiles:
94+
- sentinel
95+
- all
96+
97+
sentinel3:
98+
image: redis/redis-stack-server:edge
99+
container_name: redis-sentinel3
100+
depends_on:
101+
- redis
102+
entrypoint: "/opt/redis-stack/bin/redis-sentinel /redis.conf --port 26381"
103+
ports:
104+
- 26381:26381
105+
volumes:
106+
- "./dockers/sentinel.conf:/redis.conf"
107+
profiles:
108+
- sentinel
109+
- all

docker/base/Dockerfile

-4
This file was deleted.

docker/base/Dockerfile.cluster

-11
This file was deleted.

docker/base/Dockerfile.cluster4

-9
This file was deleted.

docker/base/Dockerfile.cluster5

-9
This file was deleted.

docker/base/Dockerfile.redis4

-4
This file was deleted.

docker/base/Dockerfile.redis5

-4
This file was deleted.

docker/base/Dockerfile.redismod_cluster

-12
This file was deleted.

docker/base/Dockerfile.sentinel

-4
This file was deleted.

docker/base/Dockerfile.sentinel4

-4
This file was deleted.

docker/base/Dockerfile.sentinel5

-4
This file was deleted.

docker/base/Dockerfile.stunnel

-11
This file was deleted.

0 commit comments

Comments
 (0)