redis实现消息队列
Posted 刘小吉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis实现消息队列相关的知识,希望对你有一定的参考价值。
//版本2:使用Redis的客户端管理器(对象池) public static IRedisClientsManager redisClientManager = new PooledRedisClientManager( new[] { // 读写链接 //如果是Redis集群则配置多个{IP地址:端口号}即可 "127.0.0.1:6379","10.0.0.1:6379","10.0.0.2:6379","10.0.0.3:6379" }, new[] { // 只读链接 //如果是Redis集群则配置多个{IP地址:端口号}即可 "127.0.0.1:6379","10.0.0.1:6379","10.0.0.2:6379","10.0.0.3:6379" }, 10); //从池中获取Redis客户端实例 public static IRedisClient redisClient = redisClientManager.GetClient(); static void Main(string[] args) { #region 客户端添加消息 redisClient.EnqueueItemOnList("Log", "1111"); redisClient.EnqueueItemOnList("Log", "222"); redisClient.EnqueueItemOnList("Log", "333"); #endregion #region 服务器端扫码消息 ThreadPool.QueueUserWorkItem(o => { while (true) { try { if (redisClient.GetListCount("Log") > 0) { string log = redisClient.DequeueItemFromList("Log"); if (!string.IsNullOrEmpty(log)) { Console.WriteLine(log); } } else { Thread.Sleep(1000); //为避免CPU空转,在队列为空时休息1秒 } } catch (Exception ex) { redisClient.EnqueueItemOnList("Log", ex.ToString()); } } }); #endregion Console.ReadLine(); }
github地址:https://github.com/842549829/RedisMessage
以上是关于redis实现消息队列的主要内容,如果未能解决你的问题,请参考以下文章