jedis实现订阅发布-publish/subscribe
来源:互联网 发布:淘宝 几次 五星 一个月 编辑:程序博客网 时间:2024/05/27 20:27
本文由larrylgq编写,转载请注明出处:http://blog.csdn.net/larrylgq/article/details/7395261
作者:吕桂强
邮箱:larry.lv.word@gmail.com
本例包括
jedis_demo:入口类
jedis_control:jedis控制器(jedis的连接池)
jedis_pub_sub_listener:订阅的监听器
singleton_agent:单例的代理类(连接池配置)
package com.larry.jedis;import redis.clients.jedis.Jedis;/** * 入口类 * @author 吕桂强 * @email larry.lv.word@gmail.com * @version 创建时间:2012-3-28 下午12:12:41 */public class jedis_demo {jedis_control redis_util = jedis_control.get_singleton();public static void main(String[] args) {jedis_demo jedis_demo = new jedis_demo();new Thread(new Runnable(){@Overridepublic void run() {jedis_control redis_util = jedis_control.get_singleton();Jedis jedis = redis_util.get_connection();jedis_pub_sub_listener pub_sub_listener = new jedis_pub_sub_listener();// 可以订阅多个频道// 订阅得到信息在lister的onMessage(...)方法中进行处理// jedis.subscribe(listener, "news.share", "news.log");// jedis.subscribe(listener, new String[]{"news.share","news.log"});jedis.psubscribe(pub_sub_listener, new String[] { "news.share" });// 使用模式匹配的方式设置频道}}).start();jedis_demo.publish();}/** * 发布 */public void publish() {Jedis jedis = redis_util.get_connection(); jedis.publish("news.share", "ok"); jedis.publish("news.share", "hello word"); }}
package com.larry.jedis;import redis.clients.jedis.Jedis;/** * jedis控制器 * @author 吕桂强 * @email larry.lv.word@gmail.com * @version 创建时间:2012-3-28 下午12:03:40 */public final class jedis_control {//单例private static jedis_control _jedis_control;public static jedis_control get_singleton(){if(_jedis_control == null){_jedis_control = new jedis_control();}return _jedis_control;}/** * 获取连接实例 * @return jedis */ public Jedis get_connection() {Jedis jedis = null; try { jedis = singleton_agent.get_jedispool().getResource(); } catch (Exception e) { e.printStackTrace(); } return jedis; } /** * 释放数据库连接 * @param conn */ public void close_connection(Jedis jedis) { if (null != jedis) { try { singleton_agent.get_jedispool().returnResource(jedis); } catch (Exception e) {e.printStackTrace(); } } } }
package com.larry.jedis;import redis.clients.jedis.JedisPubSub;/** * 监听订阅事件 * @author 吕桂强 * @email larry.lv.word@gmail.com * @version 创建时间:2012-3-28 下午12:09:20 */public class jedis_pub_sub_listener 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);}}
package com.larry.jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;/** * 所有单例的代理类 * @author 吕桂强 * @email larry.lv.word@gmail.com * @version 创建时间:2012-3-28 下午12:30:42 */public class singleton_agent {//****************单例一个连接池***************private static JedisPool jedispool = null;/** * 获取连接池 * @return 数据源 */ public static JedisPool get_jedispool() {if(jedispool == null){JedisPoolConfig jedispool_config = new JedisPoolConfig();jedispool_config.maxActive = 20;jedispool_config.maxIdle = 0;jedispool_config.maxWait = 1000;jedispool_config.testOnBorrow = true;jedispool = new JedisPool(jedispool_config, "localhost", 6379);}return jedispool; }//end****************单例一个连接池***************}
- jedis实现订阅发布-publish/subscribe
- jedis实现订阅发布-publish/subscribe
- Jedis实现发布(Publish) 订阅(Subscribe)
- Jedis实现Publish/Subscribe功能(发布和订阅)
- 订阅发布模式(Subscribe/Publish)
- 订阅发布模式(Subscribe/Publish)
- RabbitMQ Publish/Subscribe 发布/订阅
- Jedis实现Publish/Subscribe功能
- Jedis实现Publish/Subscribe功能
- Service Broker实现发布-订阅(Publish-Subscribe)框架(3)
- Service Broker实现发布-订阅(Publish-Subscribe)框架
- 设计模式---订阅发布模式(Subscribe/Publish)
- 设计模式---订阅发布模式(Subscribe/Publish)
- rabbitmq(三)Publish/Subscribe(发布/订阅)
- ActiveMQ 发布订阅(publish-subscribe)
- RabbitMQ 基础教程 Publish/Subscribe(发布/订阅)
- RabbitMQ --- Publish-Subscribe(发布-订阅)
- RabbitMQ --- Publish-Subscribe(发布-订阅)
- Coroutine实现有感
- vector c++用法
- java.io.IOException: Corrupt form data: premature ending
- MVC应用的数据建模(基于Dojo)
- poj2449---BFS+Astar
- jedis实现订阅发布-publish/subscribe
- DNN多门户支持
- 保监会暂停审批区域保险代理车险
- Java编程时如何节省内存,效率高
- linux的目录管理
- JavaScript中setAttribute用法
- RS232四线和两线的烦恼
- ibatis hibernate 简单比较
- Sphinx 相关收藏