Redis 十五 訂閱釋出
阿新 • • 發佈:2020-12-18
這個其實很簡單。
首先看封裝的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裡用命令輸入了。
再看控制檯視窗
就這樣,很簡單