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里用命令输入了。
再看控制台窗口
就这样,很简单