Redis 发布订阅

图片来源:w3c
Redis 发布订阅

下面是模拟redis的订阅和发布

1.pub.rb

require 'redis'

redis = Redis.new

5.times do 
    redis.publish('redis_sub',"hola!!!!!!!")#想redis_sub频道发布消息
end

2.sub.rb

require 'redis'
require 'json'

redis = Redis.new

redis.subscribe('redis_sub') do |on| #订阅一个redis_sub频道的信息
    on.message do |channel,msg|
        puts msg  #获取发布的信息
        puts channel  #输入频道
        puts "=============="
    end
end

运行代码: ruby sub.rb /ruby pub.rb
这里写图片描述

下面的代码来源:

1.pub.rb 可以不断输入message进行发布

require 'redis'
require 'json'

redis = Redis.new

 data = {"user"=>ARGV[1]}
 loop do 
     msg = STDIN.gets
     redis.publish ARGV[0],data.merge('msg'=>msg.strip).to_json
 end

2.sub.rb

require 'redis'
require 'json'

redis = Redis.new

redis.subscribe('rubyonrails','ruby-lang') do |on|  #rubyonrails,ruby-lang 两个频道
    on.message do |channel,msg|
         data = JSON.parse(msg)
         puts "#{channel} - [#{data['user']}]: #{data['msg']}"
     end
 end

运行代码:ruby pub.rb rubyonrails qrush / ruby sub.rb
发送端:
这里写图片描述

接受端:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值