diff --git a/requirements.txt b/requirements.txt index 0a2c8bef2e..0e84c66620 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,6 +12,7 @@ mysql-replication==0.22 django-q==1.3.9 django-redis==5.2.0 redis==3.5.3 +redis-py-cluster==2.1.3 pyodbc==4.* gunicorn==22.0.0 pyecharts==2.0.4 diff --git a/sql/engines/redis.py b/sql/engines/redis.py index 4df0b258f8..0ef03b2ae6 100644 --- a/sql/engines/redis.py +++ b/sql/engines/redis.py @@ -11,6 +11,7 @@ import shlex import redis +import rediscluster import logging import traceback @@ -27,15 +28,12 @@ class RedisEngine(EngineBase): def get_connection(self, db_name=None): db_name = db_name or self.db_name if self.mode == "cluster": - return redis.cluster.RedisCluster( - host=self.host, - port=self.port, - username=self.user, - password=self.password or None, - encoding_errors="ignore", + return rediscluster.RedisCluster( + startup_nodes=[{"host": self.host, "port": self.port}], decode_responses=True, socket_connect_timeout=10, ssl=self.is_ssl, + password=self.password, ) else: return redis.Redis( diff --git a/src/docker/Dockerfile b/src/docker/Dockerfile index 0f15a3a436..a894480cb8 100644 --- a/src/docker/Dockerfile +++ b/src/docker/Dockerfile @@ -11,7 +11,6 @@ RUN apt-get update \ && apt-get install -yq --no-install-recommends nginx mariadb-client \ && source venv4archery/bin/activate \ && pip install -r /opt/archery/requirements.txt \ - && pip install "redis>=4.1.0" \ && cp -f /opt/archery/src/docker/nginx.conf /etc/nginx/ \ && cp -f /opt/archery/src/docker/supervisord.conf /etc/ \ && mv /opt/sqladvisor /opt/archery/src/plugins/ \