I want to use caching in Tyk Gateway but it returns this error:
level=error msg=“Connection to Redis failed, reconnect in 10s” error=“storage: Redis is either down or was not configured” prefix=pub-sub
The tyk.conf contents is as below:
{
“listen_address”: “”,
“listen_port”: 8080,
“secret”: “352d20ee67be67f6340b4c0605b044b7”,
“template_path”: “/opt/tyk-gateway/templates”,
“use_db_app_configs”: false,
“app_path”: “/opt/tyk-gateway/apps”,
“middleware_path”: “/opt/tyk-gateway/middleware”,
“storage”: {
“type”: “redis”,
“host”: “tyk-redis”,
“port”: 6379,
“username”: “”,
“password”: “”,
“database”: 0,
“optimisation_max_idle”: 2000,
“optimisation_max_active”: 4000,
“timeout”: 30,
“max_retries”: 10,
“retry_delay”: 5
},
“enable_analytics”: false,
“log_level”: “debug”,
“analytics_config”: {
“type”: “”,
“ignored_ips”:
},
“dns_cache”: {
“enabled”: false,
“ttl”: 3600,
“check_interval”: 60
},
“allow_master_keys”: false,
“policies”: {
“policy_source”: “file”,
“allow_explicit_policy_id”: true
},
“http_server_options”: {
“enable_strict_routes”: true,
“enable_path_prefix_matching”: true,
“enable_path_suffix_matching”: true
},
“hash_keys”: true,
“hash_key_function”: “murmur64”,
“suppress_redis_signal_reload”: false,
“force_global_session_lifetime”: false,
“max_idle_connections_per_host”: 500
}
and the docker compose file is as below:
version: ‘3.3’
services:tyk-gateway:
image: tykio/tyk-gateway:v5.2.1
ports:
- 8080:8080
env_file:
- ./confs/tyk.env
networks:
- tyk
volumes:
- ./deployments/tyk-gateway/apps:/opt/tyk-gateway/apps
- ./deployments/tyk-gateway/tyk.conf:/opt/tyk-gateway/tyk.confdepends_on: tyk-redis: condition: service_healthy restart: unless-stoppedtyk-redis:
image: redis:6.0.4
ports:
- “6379:6379”
volumes:
- tyk-redis-data:/data
networks:
- tyk
healthcheck:
test: [“CMD”, “redis-cli”, “ping”]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
command: redis-server --bind 0.0.0.0 --protected-mode nogo-httpbin:
image: mccutchen/go-httpbin:latest
ports:
- “8081:8080”
networks:
- tykreservation:
image: nodejs-reservation
build: ./deployments/reservation
ports:
- “8091:8091”jaeger-all-in-one:
image: jaegertracing/all-in-one:latest
networks:
- tyk
ports:
- “16686:16686”
- “4317:4317”otel-collector:
image: otel/opentelemetry-collector-contrib:latest
volumes:
- ./deployments/otel-collector/otel-collector.yml:/etc/otel-collector.yml
command: [ “–config=/etc/otel-collector.yml” ]
networks:
- tyk
ports:
- “1888:1888” # pprof extension
- “13133:13133” # health_check extension
- “55670:55679” # zpages extension
- “4317” # OTLP over gRPC receiver
- “4318:4318” # OTLP over HTTP receiver
- “9464” # Prometheus exporter
- “8888” # metrics endpoint
depends_on:
- jaeger-all-in-oneprometheus:
image: prom/prometheus
volumes:
- ./deployments/prometheus/:/prometheus
- ./data/prometheus:/data
command:
- ‘–config.file=/prometheus/prometheus.yml’
- ‘–storage.tsdb.path=/data’
ports:
- “9090:9090”
networks:
- tykk6:
image: grafana/k6:latest
networks:
- tyk
ports:
- “6565:6565”
volumes:
- ./deployments/k6/:/scriptsgrafana:
image: grafana/grafana-oss
ports:
- 3000:3000
volumes:
- ./deployments/grafana/provisioning/datasources:/etc/grafana/provisioning/datasources/
- ./deployments/grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards/
- ./data/grafana/:/var/lib/grafana
- ./deployments/grafana/provisioning/img/tyk-opentelemetry.png:/usr/share/grafana/public/img/tyk-opentelemetry.png
networks:
- tykvolumes:
tyk-redis-data:
grafana-data:networks:
tyk: