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);  
        }  
    
    }
    

      

  • 相关阅读:
    如何:使用向导来处理项目模板 【转载】
    .NET : 如何在生成XML文档时绑定样式表
    如何在生产环境部署K2的流程
    SQL Server 数据库文档生成工具开源项目【合作邀请】
    新的纪元
    SharePoint : 谁说WSS不支持审核
    C++ : 类型的别名和对象的别名
    C++: 引用和地址运算符
    Infopath : 如何通过代码复制格式文本框的值
    正确地使用投影仪和移动硬盘
  • 原文地址:https://www.cnblogs.com/zuolun2017/p/5611982.html
Copyright © 2011-2022 走看看