您的位置:首页 > 数据库 > Redis

Redis 发布订阅

2016-01-21 17:36 417 查看
图片来源:w3c



下面是模拟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


发送端:



接受端:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: