zoukankan      html  css  js  c++  java
  • Redis学习笔记(8)-发布/订阅

    package cn.com;
    
    import java.util.List;
    
    import redis.clients.jedis.Jedis;
    
    public class Redis_PubSub {
    
    	public static Jedis redis = new Jedis("localhost", 6379);// 连接redis
    	
    	
    	/**
    	 * PUBLISH channel message
    	 * 将信息 message 发送到指定的频道 channel 。
    	 * */
    	public static void publish(){
    		redis.publish("student_2", "123");
    		redis.publish("student_1", "abc1");
    	}
    	
    	/**
    	 * PUBSUB <subcommand> [argument [argument ...]]
    	 * PUBSUB 是一个查看订阅与发布系统状态的内省命令, 它由数个不同格式的子命令组成,
    	 * 以下将分别对这些子命令进行介绍。
    	 * 列出当前的活跃频道。
    	 * 活跃频道指的是那些至少有一个订阅者的频道, 订阅模式的客户端不计算在内。
    	 * pattern 参数是可选的:
    	 * 如果不给出 pattern 参数,那么列出订阅与发布系统中的所有活跃频道。
    	 * 如果给出 pattern 参数,那么只列出和给定模式 pattern 相匹配的那些活跃频道。
    	 * */
    	public static void pubsub(){
    		PubSubListener listener=new PubSubListener(); 
    		redis.subscribe(listener,new String[]{"student_1","student_2"});
    		
    		
    		 
    	}
    	
    	public static void pubsubChannels(){
    		 List<String>  list=redis.pubsubChannels("student_1");
    
    		 for(String s:list){
    			 System.out.println(s);
    		 }
    		 
    	 
    		
    		 
    	}
    	
    	
    	public static void main(String [] args){
    	
    		publish();
    		pubsub();
    		pubsubChannels();
    		
    	}
    }
    

      

    package cn.com;
    
    import redis.clients.jedis.JedisPubSub;
    
    public class PubSubListener extends JedisPubSub {
    
    	 // 取得订阅的消息后的处理  
        public void onMessage(String channel, String message) {  
            System.out.println("取得订阅消息:"+channel + "=" + message);  
        }  
      
        // 初始化订阅时候的处理  
        public void onSubscribe(String channel, int subscribedChannels) {  
            // System.out.println(channel + "=" + subscribedChannels);  
        }  
      
        // 取消订阅时候的处理  
        public void onUnsubscribe(String channel, int subscribedChannels) {  
            // System.out.println(channel + "=" + subscribedChannels);  
        }  
      
        // 初始化按表达式的方式订阅时候的处理  
        public void onPSubscribe(String pattern, int subscribedChannels) {  
            // System.out.println(pattern + "=" + subscribedChannels);  
        }  
      
        // 取消按表达式的方式订阅时候的处理  
        public void onPUnsubscribe(String pattern, int subscribedChannels) {  
            // System.out.println(pattern + "=" + subscribedChannels);  
        }  
      
        // 取得按表达式的方式订阅的消息后的处理  
        public void onPMessage(String pattern, String channel, String message) {  
            System.out.println(pattern + "=" + channel + "=" + message);  
        }  
    
    }
    

      

  • 相关阅读:
    操作系统:DOS
    袁氏-人物:袁淑
    移植linux-2.6.32.2到qq2440
    qq2440启动linux后出现错误提示request_module: runaway loop modprobe binfmt-464c
    qq2440启动linux后插入u盘出现usb 1-1: device descriptor read/64, error -110,usb 1-1: device not accepting address 8, error -110
    ubuntu14.04 64bit安装teamviewer
    vi 的使用
    添加了环境变量,然而交叉编译器还是无法运行的解决方案
    linux下route命令使用实战
    ubuntu14.04纯命令行下连接有线网和无线网
  • 原文地址:https://www.cnblogs.com/zuolun2017/p/5611982.html
Copyright © 2011-2022 走看看