/// <summary>
 ///     订阅消息
 /// </summary>
 /// <param name="channelPrefix"></param>
 /// <param name="action"></param>
 public void Subscribe(string channelPrefix, Action <RedisChannel, RedisValue> action)
 {
     DoWithRetry(() =>
     {
         if (subcnn == null)
         {
             subcnn = new SERedisConnection(_sectionName, _dbIndex);
         }
         var pub = subcnn.GetSubscriber();
         pub.Subscribe(new RedisChannel(channelPrefix, RedisChannel.PatternMode.Auto), action);
     });
 }
        /// <summary>
        ///     订阅消息
        /// </summary>
        /// <param name="channelPrefix"></param>
        /// <param name="handler"></param>
        public void Subscribe(string channelPrefix, Action <string, string> handler)
        {
            DoWithRetry(() =>
            {
                if (subcnn == null)
                {
                    subcnn = new SERedisConnection(_sectionName, _dbIndex);
                }
                var pub = subcnn.GetSubscriber();

                var action = new Action <RedisChannel, RedisValue>((c, v) =>
                {
                    handler.Invoke(c.ToString(), v.ToString());
                });
                pub.Subscribe(new RedisChannel(channelPrefix, RedisChannel.PatternMode.Auto), action);
            });
        }
 /// <summary>
 ///     发布消息
 /// </summary>
 /// <param name="channelPrefix"></param>
 /// <param name="msg"></param>
 public void Publish(string channelPrefix, string msg)
 {
     DoWithRetry(() =>
     {
         using (var cnn = new SERedisConnection(_sectionName, _dbIndex))
         {
             var pub = cnn.GetSubscriber();
             pub.PublishAsync(new RedisChannel(channelPrefix, RedisChannel.PatternMode.Auto), msg);
         }
     });
 }