public RedisConnectionPool(string redisConnectionString, long database, RedisLuaScriptManager luaScriptManager) { // Init the pooledRedisClient Manager RedisClientManagerConfig config = new RedisClientManagerConfig(); config.DefaultDb = database; config.MaxReadPoolSize = RedisConnectionPool.DEFAULT_MAX_READ_POOL_SIZE; config.MaxWritePoolSize = RedisConnectionPool.DEFAULT_MAX_WRITE_POOL_SIZE; this.redisManagerPool = new PooledRedisClientManager( new string[] { redisConnectionString }, new string[] { redisConnectionString }, config); this.RequestBatchSize = RedisConnectionPool.DEFAULT_BATCH_SIZE; this.WindowMicroSec = RedisConnectionPool.DEFAULT_WINDOW_MICRO_SEC; this.Active = true; this.redisRequestQueue = new Queue <RedisRequest>(this.RequestBatchSize); this.redisResponseVisitor = new RedisResponseVisitor(); this.txEntryVisitor = new RedisTxEntryRequestVisitor(luaScriptManager); this.versionEntryVisitor = new RedisVersionEntryRequestVisitor(luaScriptManager); this.spinLock = new SpinLock(); lastFlushTime = DateTime.Now.Ticks / 10; }
/// <summary> /// Init a redis client manager with given read and write hosts /// </summary> /// <param name="readWriteHosts">An array of connections strings, with host and port</param> internal RedisClientManager(string[] readWriteHosts, RedisLuaScriptManager luaScriptManager) { if (readWriteHosts == null || readWriteHosts.Length == 0) { throw new ArgumentException("readWriteHosts at least have a host"); } this.readWriteHosts = readWriteHosts; this.redisLuaScriptManager = luaScriptManager; }
public RedisVersionDbVisitor( RedisConnectionPool clientPool, RedisLuaScriptManager redisLuaScriptManager, RedisResponseVisitor redisResponseVisitor, RedisVersionDbMode mode) { this.clientPool = clientPool; this.redisClient = clientPool.GetRedisClient(); this.redisLuaScriptManager = redisLuaScriptManager; this.RedisResponseVisitor = redisResponseVisitor; this.redisVersionDbMode = mode; this.redisRequests = new List <RedisRequest>(); this.reqIndex = 0; }
public RedisVersionTable(VersionDb versionDb, string tableId, long redisDbIndex) : base(versionDb, tableId, versionDb.PartitionCount) { this.redisDbIndex = redisDbIndex; this.responseVisitor = new RedisResponseVisitor(); this.redisVersionDb = ((RedisVersionDb)this.VersionDb); this.RedisManager = redisVersionDb.RedisManager; this.LuaManager = redisVersionDb.RedisLuaManager; this.singletonConnPool = redisVersionDb.SingletonConnPool; this.redisVersionDbMode = redisVersionDb.Mode; this.requestQueues = new Queue <VersionEntryRequest> [this.PartitionCount]; this.flushQueues = new Queue <VersionEntryRequest> [this.PartitionCount]; this.queueLatches = new int[this.PartitionCount]; RedisConnectionPool clientPool = null; for (int pid = 0; pid < this.PartitionCount; pid++) { if (this.redisVersionDbMode == RedisVersionDbMode.Cluster) { clientPool = this.singletonConnPool; } else { clientPool = this.RedisManager.GetClientPool( this.redisDbIndex, RedisVersionDb.GetRedisInstanceIndex(pid)); } this.tableVisitors[pid] = new RedisVersionTableVisitor( clientPool, this.LuaManager, this.responseVisitor, this.redisVersionDbMode); this.requestQueues[pid] = new Queue <VersionEntryRequest>(VersionDb.REQUEST_QUEUE_CAPACITY); this.flushQueues[pid] = new Queue <VersionEntryRequest>(VersionDb.REQUEST_QUEUE_CAPACITY); this.queueLatches[pid] = 0; } }
internal RedisVersionEntryRequestVisitor(RedisLuaScriptManager luaScriptManager) { this.redisLuaScriptManager = luaScriptManager; }
public RedisTxEntryRequestVisitor(RedisLuaScriptManager redisLuaScriptManager) { this.redisLuaScriptManager = redisLuaScriptManager; }