diff --git a/api/configs/middleware/cache/redis_config.py b/api/configs/middleware/cache/redis_config.py index 9320c5ab2e..54f722cbe9 100644 --- a/api/configs/middleware/cache/redis_config.py +++ b/api/configs/middleware/cache/redis_config.py @@ -90,6 +90,6 @@ class RedisConfig(BaseSettings): ) REDIS_ENABLE_CLIENT_SIDE_CACHE: bool = Field( - description="Enable client side cache in redis", - default=True, + description="Enable client side cache in redis. Note: Currently not compatible with hiredis parser.", + default=False, ) diff --git a/api/extensions/ext_redis.py b/api/extensions/ext_redis.py index c283b1b7ca..6ec58e8a0e 100644 --- a/api/extensions/ext_redis.py +++ b/api/extensions/ext_redis.py @@ -53,7 +53,14 @@ def init_app(app: DifyApp): if dify_config.REDIS_USE_SSL: connection_class = SSLConnection resp_protocol = dify_config.REDIS_SERIALIZATION_PROTOCOL - if dify_config.REDIS_ENABLE_CLIENT_SIDE_CACHE: + + # Check if hiredis is available + import importlib + + hiredis_available = importlib.util.find_spec("hiredis") is not None + + # Disable client-side caching if hiredis is available due to compatibility issues + if dify_config.REDIS_ENABLE_CLIENT_SIDE_CACHE and not hiredis_available: if resp_protocol >= 3: clientside_cache_config = CacheConfig() else: