Publish and subscribe

Source: Internet
Author: User

    • Publishing and subscribing are a message communication pattern.
    • Pros: Reduce the coupling between the message subscriber and the message Publisher, similar to the Observer pattern in design mode.
    • Publications and subscriptions for Redis

Publish and subscribe

The commands for subscribing are as follows:

// subscribe to one or more channels Subscribe  channel1  channel2  channel3 ... // mode subscription, channel parameters similar to regular expressions psubscribe abc*  xyz* ...  

The Publish command is as follows:

Publish Channel MSG

Start a Subscriber client X

subscription Cctv-1 returns three parameters: Subscribe subscription succeeded, The subscribed channel is Cctv-1, the number of channels currently subscribed is 1;

Subscription Cctv-2 returns three parameters: Subscribe subscription is successful, the subscribed channel is Cctv-2 and the number of channels currently subscribed is 2.

Start a Subscriber client Y

Subscription cctv-* returns three parameters: Psubcribe subscription succeeded, subscribed channel cctv-*, number of channels subscribed by current client 1.

Start a publisher client, Publish channel Cctv-1 message

Subscriber Client X receives subscription information, returns three parameters: Received message success, channel, received message

Subscriber Client Y receives subscription information, returns four parameters: Received message success, mode subscription channel, received message channel, received message

Cancel Subscription

Unsubscribe  cctv-1punsubscribe  CCTV-*

The unsubscribe is not emulated on the official client.

View Subscriptions

// View all channels subscribed to pubsub  channels;pubsub  channels  msg*; // View the number of subscribers to this channel pubsub  numsub  channel1 channel2 ...;

    • Programming to showcase Redis publications and subscriptions
1  Public classMySubextendsjedispubsub{2 3 @Override4      Public voidonMessage (String channel, String msg) {5System.out.println ("onMessage-" + Channel + "-" +msg);6     }7 8 @Override9      Public voidonpmessage (string pattern, string channel, String msg) {TenSystem.out.println ("onpmessage-" + Pattern + "-" + Channel + "-" +msg); One     } A  - @Override -      Public voidOnpsubscribe (String Channel,intmsg) { theSystem.out.println ("Onpsubscribe-" + Channel + "-" +msg); -     } -  - @Override +      Public voidOnpunsubscribe (String arg0,intarg1) {} -  + @Override A      Public voidOnsubscribe (String Channel,intNumber ) { atSystem.out.println ("Onsubscribe-" + Channel + "-" +Number ); -          -     } -  - @Override -      Public voidOnunsubscribe (String arg0,intarg1) {} in}

Subscriber Client A

 1  public  class   subclient { 2  public  static  void   main (string[] args) { 3  mysub sub = new   mysub ();  4  Jedis Jedis = new  Jedis ("127.0.0.1", 6 379 5  jedis.subscribe (Sub, "Cctv-1"  6   7  }

subscriber client B (modal subscription)

 1  public  class   Psubclient { public  static  void   main (string[] args) { 3  mysub sub = new   mysub ();  4  Jedis Jedis = new  Jedis ("127.0.0.1", 6 379 5  jedis.psubscribe (Sub, "cctv*"  6   7  }

Publisher Client C

1  Public class pubclient {2      Public Static void Main (string[] args) {3         New Jedis ("127.0.0.1", 6379); 4         Jedis.publish ("Cctv-1", "Hello,this is Cctv-1"); 5     }6 }

Run client ABC in turn

A-Terminal output

Onsubscribe-cctv-1-1onmessage-cctv-1-Hello,this is Cctv-1

B-Terminal output

onpsubscribe-cctv*-1onpmessage-cctv*-Cctv-1-Hello,this is Cctv-1

Learn more and remember more.

Publish and subscribe

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

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.