![]() |
1
2
简而言之,是的,这是绝对可能的,我以前在生产应用程序中多次实现过这一点。 Redis和任何其他服务一样,可以在任何地方运行,任何地方的客户端都可以连接到它。这完全取决于您对服务器的配置,以决定如何准确地进行操作(以及添加密码、配置SPIED、限制通过防火墙的访问等)。我建议大家阅读一下他们在管理部分的文档: https://redis.io/documentation 此外,当您迁移到一个专用的Redis主机,并且有多个客户端访问该主机时,您可能需要考虑让不止一个Redis服务器运行,以实现可靠性、高可用性等。Redis通过几个简单的配置命令提供了高效易用的复制,您可以在此处阅读更多信息: https://redis.io/topics/replication 在Redis上的最后一件事是,如果您最终实现了主从设置,那么如果您的主实例发生故障,您可能需要研究高可用性和自动故障切换。Redis在应用程序中内置了一个非常强大的实用程序,可以监视主服务器和从服务器,检测主服务器何时关闭,并自动重新配置服务器,将其中一个从服务器升级到新的主服务器。该实用程序称为Redis Sentinel,您可以在此处阅读: https://redis.io/topics/sentinel 对于您关于竞争条件的问题,这取决于您如何准确地编写推送到队列中的作业。不过,对于您的用例来说,这听起来并不是一个太大的问题,但它实际上取决于第三方系统的约束。无论哪种方式,如果您受制于竞争条件,您仍然可以为其实现解决方案,但可能需要使用Redis锁之类的东西( https://redis.io/topics/distlock ). Taylor最近在即将发布的Laravel 5.6版本中添加了一个新功能,我认为它在调度程序中实现了Redis锁的一个版本( https://medium.com/@taylorotwell/laravel-5-6-preview-single-server-scheduling-54df8e0e139b ). 您可以研究它是如何实现的,如果您最终需要它,可以根据您的用例进行调整。 |
![]() |
lio · Java实例化Queueadt的实现 6 年前 |
![]() |
Invictus97k · c编程、队列和模块问题 6 年前 |
![]() |
Gameatro · 为什么malloc在函数内部调用时返回空指针? 6 年前 |
![]() |
Ahsan Tarique · 队列实现错误C++[重复] 6 年前 |
![]() |
aknosis · 为多个队列共享单个laravel数据库表 6 年前 |
![]() |
T.Sh · Elastix自定义配置文件 6 年前 |