`

Redis中的发布订阅

 
阅读更多
http://www.cnblogs.com/mushroom/p/4470006.html#one

package com.demo.redis;

import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

import org.apache.commons.lang3.StringUtils;

import com.support.RedisTool;

import redis.clients.jedis.JedisPubSub;

public class Test {

	public static void main(String[] args) {
		new Test().test();
	}

	public void test1() {
		String loginip = "127.0.0.1";
		long timestamp = System.currentTimeMillis() / 1000;
		Integer logType = 2;
		List<?> event = Arrays.asList("userId", loginip, timestamp, logType);

		System.err.println(event);
	}

	static String topic = "test";

	public void test() {

		JedisPubSubListener listener = new JedisPubSubListener();
		Thread th = new Thread(new Receive(topic, listener));
		th.setName("abc");
		th.start();
		input();
	}

	public void input() {
		Scanner scanner = new Scanner(System.in);
		while (true) {
			String str = scanner.nextLine();
			if (StringUtils.equals(str, "quit")) {
				break;
			}

			RedisTool.keep().getJedis().publish(topic, str);
		}

		scanner.close();
		RedisTool.keep().getJedis().shutdown();
	}
}

class Receive implements Runnable {

	String topic;
	JedisPubSubListener listener;

	public Receive() {

	}

	public Receive(String topic, JedisPubSubListener listener) {
		this.topic = topic;
		this.listener = listener;
	}

	@Override
	public void run() {
		RedisTool.keep().getJedis().subscribe(listener, topic);
	}

}

class JedisPubSubListener extends JedisPubSub {

	@Override
	public void onMessage(String channel, String message) {
		String name = Thread.currentThread().getName();
		System.err.println(name + ": " + message);
	}
}

分享到:
评论

相关推荐

    C# Redis发布订阅Demo

    综上所述,C# Redis发布订阅Demo涵盖了Redis Pub/Sub机制的使用以及Key过期通知的处理。通过这个Demo,开发者可以学习到如何在C#应用中利用Redis进行实时数据通信和监控,这对于构建分布式系统和实时应用非常有价值...

    C# Redis发布与订阅系统源码

    本项目提供了一个基于C#的Redis发布与订阅(Publish/Subscribe)系统的源码,帮助开发者了解如何在Windows Forms(Winform)应用中实现这一功能。 首先,我们需要了解Redis的发布/订阅模式。在这个模式下,发送者...

    redis发布订阅小案例

    在这个“redis发布订阅小案例”中,我们将探讨如何使用Java来实现Redis的发布订阅功能。首先,我们需要引入Jedis库,这是Java操作Redis的常用客户端库。确保在项目中已经添加了Jedis的依赖,例如通过Maven或Gradle。...

    Java实现Redis的消息订阅和发布

    本篇文章将深入探讨如何使用Java来实现Redis的消息订阅和发布功能,这在分布式系统和实时数据处理中非常关键。 首先,理解Redis的发布/订阅(Pub/Sub)模式是至关重要的。在这一模式下,Redis服务器作为消息的中间...

    QT实现redis订阅发布功能

    在本文中,我们将深入探讨如何使用Qt框架结合hiredis-1.0.0库来实现Redis的订阅发布功能。Redis是一种高性能的键值存储系统,广泛用于数据缓存、消息队列以及实时数据处理等领域。Qt则是一个跨平台的应用程序开发...

    基于netcore 3.0的redis发布订阅示例代码

    在本文中,我们将深入探讨如何使用.NET Core 3.0框架与Redis进行发布/订阅(Pub/Sub)通信。Redis是一个高性能的键值存储系统,它提供了丰富的数据结构,如字符串、哈希表、集合和有序集合。在.NET Core 3.0中,我们...

    Redis发布订阅.net实现

    标题"Redis发布订阅.net实现"所涉及的关键知识点包括: 1. Redis的发布订阅机制: 发布订阅模式在Redis中由`PUBLISH`和`SUBSCRIBE`命令支持。发布者通过`PUBLISH`命令将消息发送到一个特定的频道,而订阅者则通过`...

    Redis 发布订阅 Demo

    **Redis发布订阅模式详解** Redis 是一款高性能的键值存储系统,它支持多种数据结构,如字符串、哈希、列表、集合和有序集合等。在实际应用中,Redis 不仅可以作为缓存服务,还提供了丰富的消息通信机制,其中之一...

    redis订阅与发布.zip

    在 Redis 中,订阅与发布(Pub/Sub)是一种消息通信模式,用于实现实时的消息传递。在这个模式下,发布者将消息发送到特定的频道,而订阅者则可以监听并接收这些频道上的消息。这种机制无需直接交互,而是通过中间的...

    redis绑定webSocket发布订阅连接推送

    标题中的“redis绑定webSocket发布订阅连接推送”指的是在Web应用中使用Redis作为消息中间件,结合WebSocket技术来实现实时的数据推送。Redis是一个高性能的键值存储系统,支持多种数据结构,如字符串、哈希、列表、...

    基于muduo网络库的集群聊天服务器和客户端源码,使用nginx tcp负载均衡,mysql数据库,redis发布-订阅.zip

    基于muduo网络库的集群聊天服务器和客户端源码,使用nginx tcp负载均衡,mysql数据库,redis发布-订阅数据库,redis发布-订阅 基于muduo网络库的集群聊天服务器和客户端源码,使用nginx tcp负载均衡,mysql数据库,...

    redis订阅,redis发布

    在 Redis 中,发布/订阅(pub/sub)是一种消息通信模式,允许生产者(发布者)向多个消费者(订阅者)广播消息,而无需直接知道对方的存在。这种模式对于实现实时通知、聊天系统或者构建事件驱动的应用非常有用。 *...

    SpringBoot + Redis实现事件的发布订阅功能

    本话题主要探讨如何利用SpringBoot和Redis实现事件的发布订阅功能,这对于实现分布式系统中的异步通信和解耦至关重要。 首先,我们需要理解SpringBoot的核心特性。SpringBoot是Spring框架的一个简化版本,它旨在...

    .net core如何使用Redis发布订阅

    接下来,详细介绍一下.NET Core中使用StackExchange.Redis进行Redis发布订阅的具体步骤和代码示例: 1. 安装StackExchange.Redis库 要在.NET Core项目中使用StackExchange.Redis,需要先通过NuGet包管理器安装该库...

    Redis发布订阅SignalR即时通讯.rar

    本案例包含redis的发布订阅功能,以及dotnet core+SignalR实现的简单即时通信,并提供文档笔记。本案例初衷是想结合redis的发布订阅功能+websocket实现消息客户端页面订阅指定的消息,并在客户端页面进行显示;

    redis订阅发布实现websocket集群.zip

    接下来,Redis的发布/订阅功能在此项目中的应用关键在于: 1. **发布者(Publisher)**: 当服务器端有新的消息需要广播给所有连接的客户端时,通过Redis的`publish()`命令将消息发送到特定的频道(channel)。 2. ...

    基于Java环境下的Redis发布订阅的设计与实现.pdf

    基于Java环境下的Redis发布订阅设计与实现 本文研究了基于Java环境下的Redis发布订阅设计与实现,以满足实时聊天系统、微博以及分布式架构等应用对数据通信中间件的需求。Redis的发布订阅功能可以实现实时通信、...

    redis订阅机制简单的使用方法

    redis订阅机制,一方面推送消息,另一方面同时接收消息。

    Redis中使用Java代码的方式实现发布订阅流程-发布者示例代码.zip

    在Redis中,发布/订阅(Publish/Subscribe,简称Pub/Sub)是一种消息通信模式,它允许消息生产者(发布者)发送消息到一个频道,而多个消息消费者(订阅者)可以实时接收这些消息。这个功能在分布式系统中尤其有用,...

    Redis中使用Java代码的方式实现发布订阅流程-订阅者示例代码.zip

    在这个“Redis中使用Java代码的方式实现发布订阅流程-订阅者示例代码.zip”压缩包中,我们重点关注的是如何用Java客户端操作Redis的订阅功能。以下是一些关于Redis订阅者的关键知识点: 1. **Jedis库**: Java开发者...

Global site tag (gtag.js) - Google Analytics