StackService.Redis Pub/Sub应用实例
新建项目后先引用库ServiceStack.Redis
1. 参数配置
/*连接字符串格式*localhost*127.0.0.1:6379*redis://localhost:6379*password@localhost:6379*clientid:password@localhost:6379*redis://clientid:password@localhost:6380?ssl=true&db=1*/varredis_servre="192.168.1.104:6379";varredis_channel="test@#";varchannel_exit="exit";
2. 建立redis连接池
varrwHosts=newstring[]{redis_servre};varrHosts=newstring[]{};varredisPool=newPooledRedisClientManager(rwHosts,rHosts,newRedisClientManagerConfig(){MaxWritePoolSize=5,MaxReadPoolSize=5,AutoStart=true});
3. 订阅channels
vart_sub=newThread(()=>{//using(varredisClient=newRedisClient("192.168.1.104",6379))using(varredisClient=redisPool.GetClient()){using(varsub=redisClient.CreateSubscription()){sub.OnMessage=(channel,msg)=>{Console.WriteLine("recv{0}from{1}",msg,channel);if(msg==channel_exit){sub.UnSubscribeFromAllChannels();}};//会阻塞线程sub.SubscribeToChannels(redis_channel);}}Console.WriteLine("subexit");});t_sub.Start();
4. 向channel发布消息
using(varredisClient=redisPool.GetClient()){redisClient.PublishMessage(redis_channel,"hello");Console.ReadKey();redisClient.PublishMessage(redis_channel,channel_exit);}
5. 运行程序查看效果,可以通过redis-cli程序发送消息试试看
>publishtest@#hello>publishtest@#exit
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。