我必须在Laravel应用程序中使用Socketio配置Redis。但是,到目前为止,我尝试过的所有操作都会遇到相同的错误:
连接被拒绝[tcp://127.0.0.1:6379]我
我可以使用docker exec -it id sh转到容器,当我ping服务器时,我收到PONG消息。客户端在我的database.php文件中已经是“ predis”,并且还安装了软件包。
.env
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379
docker-compose.yml
version: "2"
services:
api:
build: .
ports:
- 9000:9000
volumes:
- .:/app
- /app/vendor
depends_on:
- postgres
- redis
environment:
DATABASE_URL: postgres://xx@postgres/xx
postgres:
image: postgres:latest
environment:
POSTGRES_USER: xx
POSTGRES_DB: xx
POSTGRES_PASSWORD: xx
volumes:
- .Data:/var/lib/postgresql/data
ports:
- 3306:5432
redis:
build: ./Redis/
ports:
- 6003:6379
volumes:
- ../RedisData/data:/data
command: redis-server --appendonly yes
Dockerfile(redis)
FROM redis:alpine
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
答案 0 :(得分:1)
错误是说它可以连接到端口127.0.0.1
上的6379
。因此,请确保主机和端口正常:
主机127.0.0.1可以:如果您在与Redis相同的主机上运行php,或者在Docker主机上运行php,则可以进行此工作,但是在这种情况下,端口为{{1} }
端口6379正常:主机不好,您必须指定Docker容器主机名:6003
确保配置缓存可用