首页 > 数据库 >.NETCORE 如何使用Redis进行消息订阅和发布

.NETCORE 如何使用Redis进行消息订阅和发布

时间:2023-06-30 11:27:01浏览次数:38  
标签:订阅 string NETCORE Redis redis subscriber message your channel

创建RedisMessagePublisherRedisMessageSubscriberRedisMessagePublisher用于发布消息到指定的频道,而RedisMessageSubscriber用于订阅频道并处理接收到的消息

using StackExchange.Redis;
using System;

public class RedisMessagePublisher
{
private readonly IConnectionMultiplexer _redis;
private readonly ISubscriber _subscriber;

public RedisMessagePublisher(string connectionString)
{
_redis = ConnectionMultiplexer.Connect(connectionString);
_subscriber = _redis.GetSubscriber();
}

public void PublishMessage(string channel, string message)
{
_subscriber.Publish(channel, message);
}
}

public class RedisMessageSubscriber
{
private readonly IConnectionMultiplexer _redis;
private readonly ISubscriber _subscriber;

public RedisMessageSubscriber(string connectionString)
{
_redis = ConnectionMultiplexer.Connect(connectionString);
_subscriber = _redis.GetSubscriber();
}

public void SubscribeToChannel(string channel, Action<string> messageHandler)
{
_subscriber.Subscribe(channel, (redisChannel, value) => messageHandler(value));
}
}

在发布消息时,你可以调用PublishMessage方法,传递频道和消息内容。例如:

string redisConnectionString = "your-redis-connection-string";
string channel = "your-channel";
string message = "Hello, subscribers!";

var publisher = new RedisMessagePublisher(redisConnectionString);
publisher.PublishMessage(channel, message);

在订阅消息时,你可以调用SubscribeToChannel方法,并提供频道和一个处理消息的回调函数。当有新消息到达时,回调函数将被触发并传递接收到的消息内容。例如:

string redisConnectionString = "your-redis-connection-string";
string channel = "your-channel";

var subscriber = new RedisMessageSubscriber(redisConnectionString);
subscriber.SubscribeToChannel(channel, (message) =>
{
Console.WriteLine("Received message: " + message);
// 在这里处理接收到的消息
});

请确保替换示例中的your-redis-connection-stringyour-channel为实际的Redis连接字符串和频道名称。

标签:订阅,string,NETCORE,Redis,redis,subscriber,message,your,channel
From: https://www.cnblogs.com/zzhsmallblog/p/17516115.html

相关文章

  • .NETCORE 进行Redis读写
    usingStackExchange.Redis;publicclassRedisDataStorage{privatereadonlyIConnectionMultiplexer_redis;publicRedisDataStorage(stringconnectionString){_redis=ConnectionMultiplexer.Connect(connectionString);}publicvoidSe......
  • Redis如何启动远程连接
    1.在Redis安装目录下找到redis.windows.conf/redis.conf(其中redis.windows.conf是windows系统下文件,redis.conf是其他操作系统上的)2.找到并编辑`bind`配置项,将其设置为服务器的IP地址,或者设置为`0.0.0.0`,表示允许所有IP地址访问。例如:`bind0.0.0.0`。3.找到并编辑`......
  • 2023-06-29:redis中什么是热点Key?该如何解决?
    2023-06-29:redis中什么是热点Key?该如何解决?答案2023-06-29:在Redis中,经常被访问的key被称为热点key。产生原因和危害原因热点key问题产生的原因可以归纳为以下两种情况:用户对于某些数据的访问频率远大于数据的生产频率,这类数据包括热门商品、热点新闻、热点评论以及明星直播等。在日......
  • 亿级用户实时互动,GaussDB(for Redis)带您沉浸式体验迷你世界
    摘要:GaussDB(forRedis)助您聊天不卡顿,畅玩更痛快爱冒险是人的天性,游戏创造的虚拟世界充分满足了人们这一需求,玩游戏也成为人们闲暇时光的重要放松方式之一。作为国内头部沙盒创意平台,《迷你世界》目前月活用户超过1亿,用户创作的场景地图超过2亿。持续增加的用户数,层出不穷的游戏地......
  • 【SpringBoot】redis keys命令被禁用,spring缓存 @CacheEvict报异常
     背景项目使用springboot整合redis做缓存,代码中使用spring的缓存注解配置缓存策略。在jarvis上部署时接入了公司分布式redis平台代替本地的redis。结果测试的时候,新增一条记录时报了错,提示  ERRunknowncommand'keys' 。经排查发现问题原因:新增记录的函数上有@C......
  • redis
    目录一、Redis介绍和安装1.关系型数据库和非关系型数据库2.redis特点:3.安装redis二、redis普通链接和连接池二、redis普通链接和连接池2.1普通链接2.2连接池链接三、操作之String操作四、操作之Hash操作五、操作之List操作六redis管道七、django中使用redis八、django缓存补充......
  • redis cluster集群搭建
    redis6.2使用docker搭建rediscluster集群(3主3从)所有的操作都在根目录~/Developer/docker-compose/redis-cluster-6.2执行创建配置文件为了方便,写了个shell脚本,懒人必备createConfig.shforportin$(seq63816386);doconf_dir=./${port}/confconf_file=$......
  • .NET 个人博客-添加RSS订阅功能
    个人博客-添加RSS订阅功能前言个人博客系列已经完成了留言板文章归档推荐文章优化推荐文章排序博客地址:https://pljzy.top然后博客开源的原作者也是百忙之中添加了一个名为RSS订阅的功能,那么我就来简述一下这个功能是干嘛的,然后照葫芦画瓢实现一下。RSS简述来自ch......
  • 「路飞项目10」redis
    1redis列表操作importredisconn=redis.Redis(decode_responses=True)1lpush(name,values)#在name对应的list中添加元素,每个新的元素都添加到列表的最左边#rpush(name,values)表示从右向左操作#如果name不存在的话会新增nameconn.lpush('hobbys','篮球')conn......
  • CentOS安装Redis-5.0.14
     注:以下所有操作均在CentOS7.9x86_64位系统下完成。 #准备工作#在安装Redis之前,请确保已经使用yum安装了以下基础组件:makegccgcc-c++kernel-devel #Redis的安装#开始下载Redis并进行编译安装:wgethttp://download.redis.io/releases/redis-5.0.14.tar.gztar......