code: def get_redis_connection():
      
      if config.MOCK_REDIS:  # pragma: no cover
          import mockredis
          return mockredis.mock_strict_redis_client()  # pragma: no cover
      elif config.DEFENDER_REDIS_NAME:  # pragma: no cover
          try:
              cache = caches[config.DEFENDER_REDIS_NAME]
          except InvalidCacheBackendError:
              raise KeyError(INVALID_CACHE_ERROR_MSG.format(
                  config.DEFENDER_REDIS_NAME))
          # every redis backend implement it own way to get the low level client
          try:
              # redis_cache.RedisCache case (django-redis-cache package)
              return cache.get_master_client()
          except AttributeError:
              # django_redis.cache.RedisCache case (django-redis package)
              return cache.client.get_client(True)
      else:  # pragma: no cover
          redis_config = parse_redis_url(config.DEFENDER_REDIS_URL)
          return redis.StrictRedis(
              host=redis_config.get('HOST'),
              port=redis_config.get('PORT'),
              db=redis_config.get('DB'),
              password=redis_config.get('PASSWORD'),
              ssl=redis_config.get('SSL'))
docs: Get the redis connection if not using mock