1. 程式人生 > 資料庫 >Redis 十五 訂閱釋出

Redis 十五 訂閱釋出

這個其實很簡單。

首先看封裝的RedisHelper類裡的訂閱方法,這裡支援傳入委託方法。

 public void Subscribe(string subChannel, Action<RedisChannel, RedisValue> handler = null)
        {
            ISubscriber sub = _conn.GetSubscriber();
            sub.Subscribe(subChannel, (channel, message) =>
            {
                //接收訂閱訊息,處理邏輯
                if (handler == null)
                {
                    Console.WriteLine(subChannel + " 訂閱收到訊息:" + message);
                }
                else
                {
                    handler(channel, message);
                }
            });
}

再看釋出方法

public long Publish<T>(string channel, T msg)
        {
            ISubscriber sub = _conn.GetSubscriber();
            return sub.Publish(channel, ConvertJson(msg));
        }

有了這兩個,就可以直接實現了。

控制檯呼叫訂閱方法

class Program
    {
        static void Main(string[] args)
        {
            RedisHelper redisHelper = new RedisHelper();
            redisHelper.Subscribe("product", CallBack);
            Console.ReadLine();
        }

        public static void CallBack(RedisChannel channel, RedisValue message)
        {
            Console.WriteLine("channel:" + channel);
            Console.WriteLine("message:" + message);
        }
    }

編譯後執行,控制檯窗口裡應該是啥也沒有,因為還沒釋出。

 

這裡我偷個懶,釋出的方法直接在redis裡用命令輸入了。

 

 

再看控制檯視窗

 

 

就這樣,很簡單