Py学习  »  Redis

使用Redis作为Docker容器之间的链接

henleyhoudini • 6 年前 • 1385 次点击  

我有一个docker compose文件,里面有几个容器,其中两个应该通过Redis DB通信。两个容器都有到里德的连接,我可以从这两个容器读/写。不过,我希望每次从另一个容器添加内容时都触发一个容器。我想我可以通过Redis Sub/Pub来实现这一点,但是当我运行代码时,它不会触发任何东西,即使我可以看到我已经向Redis队列添加了新项。

我有两个问题: 一。我想做的是可能的吗?我可以在两个独立的docker容器中发布/订阅并期望它按上述方式工作吗? 2。如果可能的话,有人能给我指一下我用这个工具哪里出错了吗?

这是我的功能,我添加新的数据到Redis队列,然后在Docker容器1中发布数据。

func redisShare(key string, value string) {
jobsQueue.Set(key, value, 0) //setting in the queue
jobsQueue.Publish(key, value) //publishing for the other docker container to notice
fmt.Println("added ", key, "with a value of ", value, "to the redis queue")
}

我正在我的另一个docker容器中使用这一行订阅Redis队列并侦听更改: redisdb.Subscribe()

如果有东西被添加到redis队列中,它会将数据共享给另一个容器,我会看到收到的消息,但是现在Docker容器2只是运行然后关闭。

谢谢!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52726
文章 [ 2 ]  |  最新文章 6 年前