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实现消息队列的主要内容,如果未能解决你的问题,请参考以下文章

redis消息队列有没有

Redis 实现 消息队列

使用redis实现消息队列

Redis 竟然能用 List 实现消息队列

redis怎么做消息队列

Redis5.0 Stream实现轻量化消息队列(一文实现Java实战完整版)