如何用dokku和flask连接redis?

How to connect to redis with dokku and flask?

我想将redis 与dokku 和flask 一起使用。第一个问题是安装当前版本的 dokku,我现在使用 repo 中的最新版本。

第二个问题出现在 Flask 调试器中:

redis.exceptions.ConnectionError
ConnectionError: Error 111 connecting to None:6379. Connection refused.

我在 Flask 中设置了 redis url 和端口:

app.config['REDIS_URL'] = 'IP:32768'                                                                                         

-----> 检查 Redis 的状态 远程:找到图像 redis/landing 远程:正在检查状态...已停止。 远程:启动 redis/landing...命令:docker 运行 -v /home/dokku/.redis/volume-landing:/var/lib/redis -p 6379 -d redis/landing/bin/start_redis.sh -----> 设置配置变量 REDIS_URL:redis://IP:6379 REDIS_IP: IP REDIS_PORT: 6379

有什么想法吗? REDIS_URL 应该以不同的方式设置?

此代码在本地主机上运行正常: https://github.com/kwikiel/bounce (['REDIS_IP'] = '172.17.0.13' 设置为 127.0.0.1)

当我尝试连接 redis dokku 时出现问题。

在 flask 和 dokku 中使用 redis 的步骤:

  1. 安装redis插件:

    cd /var/lib/dokku/plugins

    git克隆https://github.com/ohardy/dokku-redisredis

    dokku 插件安装

  2. Link你的redis容器到应用容器

    dokku redis:create [应用容器名称]

您将收到有关必须设置的环境变量的信息 - 例如:

   Host: 172.17.0.91
   Public port: 32771

然后在 Flask(或其他框架)中设置这些设置

app.config['REDIS_URL'] =  'redis://172.17.0.91:6379' 
app.config['REDIS_IP'] = '172.17.0.91'                                      
app.config['REDIS_PORT'] = '6379'   

与 Flask 应用程序一起使用的 redis 数据库的完整示例(A/B 在 Flask 中测试):

https://github.com/kwikiel/bounce