/// <summary>
 /// Initializes a new instance of the <see cref="RedisDatabase"/> class.
 /// </summary>
 /// <param name="connectionPoolManager">The connection pool manager.</param>
 /// <param name="serializer">The serializer.</param>
 /// <param name="serverEnumerationStrategy">The server enumeration strategy.</param>
 /// <param name="dbNumber">The database to use.</param>
 /// <param name="maxvalueLength">The max lenght of the cache object.</param>
 /// <param name="keyPrefix">The key prefix.</param>
 public RedisDatabase(
     IRedisCacheConnectionPoolManager connectionPoolManager,
     ISerializer serializer,
     ServerEnumerationStrategy serverEnumerationStrategy,
     int dbNumber,
     uint maxvalueLength,
     string keyPrefix = null)
 {
     Serializer = serializer ?? throw new ArgumentNullException(nameof(serializer));
     this.serverEnumerationStrategy = serverEnumerationStrategy ?? new ServerEnumerationStrategy();
     this.connectionPoolManager     = connectionPoolManager ?? throw new ArgumentNullException(nameof(connectionPoolManager));
     this.dbNumber  = dbNumber;
     this.keyPrefix = keyPrefix;
     maxValueLength = maxvalueLength;
 }
コード例 #2
0
 /// <summary>
 /// 对象的新实例初始化 <see cref="RedisDatabase"/> class.
 /// </summary>
 /// <param name="connectionPoolManager">连接池管理器。</param>
 /// <param name="serializer">序列化</param>
 /// <param name="serverEnumerationStrategy">服务器枚举策略</param>
 /// <param name="dbNumber">要使用的数据库序号.</param>
 /// <param name="maxvalueLength">缓存对象的最大长度</param>
 /// <param name="keyPrefix">key前缀</param>
 public RedisDatabase(
     IRedisCacheConnectionPoolManager connectionPoolManager,
     ISerializer serializer,
     ServerEnumerationStrategy serverEnumerationStrategy,
     int dbNumber,
     uint maxvalueLength,
     string keyPrefix         = null,
     ILogger logger           = null,
     IMemoryCache memorycache = null)
 {
     _logger    = logger ?? NullLogger <RedisDatabase> .Instance;
     Serializer = serializer ?? throw new ArgumentNullException(nameof(serializer));
     this.serverEnumerationStrategy = serverEnumerationStrategy ?? new ServerEnumerationStrategy();
     this.connectionPoolManager     = connectionPoolManager ?? throw new ArgumentNullException(nameof(connectionPoolManager));
     this.dbNumber  = dbNumber;
     this.keyPrefix = keyPrefix;
     maxValueLength = maxvalueLength;
     _memorycache   = memorycache;
 }
コード例 #3
0
        public RedisDatabase(
            IConnectionMultiplexer connectionMultiplexer,
            ISerializer serializer,
            ServerEnumerationStrategy serverEnumerationStrategy,
            IDatabase database,
            string keyPrefix = null)
        {
            this.serverEnumerationStrategy = serverEnumerationStrategy ?? new ServerEnumerationStrategy();
            this.Serializer            = serializer ?? throw new ArgumentNullException(nameof(serializer));
            this.connectionMultiplexer = connectionMultiplexer ?? throw new ArgumentNullException(nameof(connectionMultiplexer));

            Database = database;

            if (!string.IsNullOrWhiteSpace(keyPrefix))
            {
                Database = Database.WithKeyPrefix(keyPrefix);
            }

            keyprefix = keyPrefix;
        }
		public static IEnumerable<IServer> GetServers(
			ConnectionMultiplexer multiplexer,
			ServerEnumerationStrategy serverEnumerationStrategy)
		{
			switch (serverEnumerationStrategy.Mode)
			{
				case ServerEnumerationStrategy.ModeOptions.All:
					var serversAll = new ServerEnumerable(multiplexer,
						serverEnumerationStrategy.TargetRole,
						serverEnumerationStrategy.UnreachableServerAction);
					return serversAll;

				case ServerEnumerationStrategy.ModeOptions.Single:
					var serversSingle = new ServerEnumerable(multiplexer,
						serverEnumerationStrategy.TargetRole,
						serverEnumerationStrategy.UnreachableServerAction);
					return serversSingle.Take(1);

				default:
					throw new NotImplementedException();
			}
		}
コード例 #5
0
        public static IEnumerable <IServer> GetServers(
            IConnectionMultiplexer multiplexer,
            ServerEnumerationStrategy serverEnumerationStrategy)
        {
            switch (serverEnumerationStrategy.Mode)
            {
            case ServerEnumerationStrategy.ModeOptions.All:
                var serversAll = new ServerEnumerable(multiplexer,
                                                      serverEnumerationStrategy.TargetRole,
                                                      serverEnumerationStrategy.UnreachableServerAction);
                return(serversAll);

            case ServerEnumerationStrategy.ModeOptions.Single:
                var serversSingle = new ServerEnumerable(multiplexer,
                                                         serverEnumerationStrategy.TargetRole,
                                                         serverEnumerationStrategy.UnreachableServerAction);
                return(serversSingle.Take(1));

            default:
                throw new NotImplementedException();
            }
        }