redis ruby用戶端學習(四)

來源:互聯網
上載者:User

標籤:

redis是一個快速、穩定的發布/訂閱的資訊系統。

這裡有相關的介紹

可以用這個發布訂閱系統,實現聊天功能。

1,假設有兩個使用者,分別是user1和user2,各建立一個redis串連。

u1 = Redis.new
u2 = Redis.new

2,u1訂閱一個頻道channel1

u1.subscribe "channel1" do |on|    on.subscribe do |channel, subscriptions|        puts "Subscribed to ##{channel} (#{subscriptions} subscriptions)"    end    on.message do |channel, msg|        puts "#{channel}: #{msg}"    endend

 u1進入監聽等待狀態

#Subscribed to #channel1 (1 subscriptions)

3,u2發布一條訊息

u2.publish ‘channel1‘, ‘hello‘

4,u1收到新的訊息,並列印出來

#Subscribed to #channel1 (1 subscriptions)#channel1: hello

5,block塊中,有三種回調類型,已經看到的前2種,subscribe和message,第三種是unsubscribe。

redis.subscribe(:one, :two) do |on|    #channel:當前的頻道,subscriptions: 第幾個頻道    on.subscribe do |channel, subscriptions|      puts "Subscribed to ##{channel} (#{subscriptions} subscriptions)"    end    #channel:當前的頻道,message: 訊息內容    on.message do |channel, message|      puts "##{channel}: #{message}"      redis.unsubscribe if message == "exit"    end    #    on.unsubscribe do |channel, subscriptions|      puts "Unsubscribed from ##{channel} (#{subscriptions} subscriptions)"    end  end

ps:代碼來自https://github.com/redis/redis-rb/blob/master/examples/pubsub.rb

可以在訊息定義各種規則,來實現頻道的管理。

6,下面介紹一下發布和訂閱相關的一些方法。

psubscribe。訂閱給定的模式。

redis.psubscribe(‘c*‘) do |on|    on.psubscribe do |channel, subscriptions|      puts "Subscribed to ##{channel} (#{subscriptions} subscriptions)"    end    on.pmessage do |pattern, channel, message|      puts "##{channel}: #{message}"      redis.unsubscribe if message == "exit"    end    on.punsubscribe do |channel, subscriptions|      puts "Unsubscribed from ##{channel} (#{subscriptions} subscriptions)"    end  end

和subscribe的區別是參數是匹配的模式,block中的三個方法也對應的變化了。

 

 小結:這個主要介紹了redis中的發布和訂閱相關的使用例子。一個使用者可以訂閱多個頻道,也可以向多個頻道發布訊息。

 

redis ruby用戶端學習(四)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.