Redis pub / sub实现

时间:2014-12-17 11:52:12

标签: ruby-on-rails ruby-on-rails-4 redis

我正在从3个源网址

中检索JSON数据

例如

data1 = HTTParty.get('url1')

data2 = HTTParty.get('url2')

data3 = HTTParty.get('url3')

我每2分钟就击中所有3个网址,并且变量data1,data2和data3中获得的数据可能每2分钟变化一次或不变化。每当数据发生变化时,它应该反映在变量data1,data2和data3中。我需要显示redis中的数据。

如何使用redis pub / sub方法实现此目的? PubSub

1 个答案:

答案 0 :(得分:3)

只是草案:

  1. 获取数据时,请使用SHA1()或等效哈希函数对其进行哈希处理。
  2. 将哈希值设置为相应的Redis键,但在设置新值之前请先读取旧值。
  3. 如果旧值不同,请使用Redis PUBLISH向发送者发送消息。
  4. 但是,使用此架构,如果侦听器断开连接,它们将永远丢失更新。还有一些选择:

    1. 听众可以不时检查密钥的值,以检查它与视图相比是否发生了变化。
    2. 或者...当侦听器收到消息时,它还会设置一个对应的密钥,其中包含上次更新的哈希值。这种方式不时检查json数据的过程,也可能检查至少有人收到了最新的可用更新,如果没有,你可以重新发布。
    3. 需要更多工作,但我希望这是一个开始。