[StackExchange]Redis 发布订阅

直接上代码

 public class Lampard
    {
        public static void Main(string[] args)
        {
            using (var client = ConnectionMultiplexer.Connect("192.168.224.134:6379,abortConnect=false,ssl=false,password=123"))
            {
                if (client.IsConnected)
                    Console.WriteLine("Connect Success!");
                else
                    Console.WriteLine("Connect Fails");
                var sub = client.GetSubscriber();
                sub.Subscribe("test", (channel, message) =>
                {
                    Console.WriteLine("收到来自" + channel.ToString() + "的消息:" + message);
                });
                while (true)
                {
                    Console.WriteLine("已经订阅test,请输入要发布的消息");
                    sub.Publish("test", Console.ReadLine());
                }
                // Console.ReadLine();
            }
        }
    }

效果图
这里写图片描述

指定消息发布的顺序(Message Order)

当使用 pub/sub API 时,你可以指定消息是并行还是有序的。
有序的意味着你不需要考虑线程安全的问题 ,同时也意味着消息会通过队列完全按照你发布的顺序来进行传递,这必然导致消息的延迟。
并行处理,不能保证消息是按照发布的顺序来进行处理的,你的代码也要保证当存在并发时程序运行正常,
消息的顺序通常是无关紧要的, 并行处理可以获得更好的性能和扩展性。

为确保安全,消息的传递默认是有序的。为获得更好的性能强烈建议你使用并行操作 。 这是非常简单的。

multiplexer.PreserveAsyncOrder = false;

建议并非是你配置该选项的理由, 是否适合完全取决与你订阅消息的代码。

http://www.runoob.com/redis/redis-pub-sub.html
http://www.mamicode.com/info-detail-1063252.html

原文地址:https://www.cnblogs.com/xiaoch/p/13417943.html