public void DisposeClient(RedisNativeClient client) { lock (clients) { for (var i = 0; i < clients.Length; i++) { var writeClient = clients[i]; if (client != writeClient) { continue; } if (client.IsDisposed) { clients[i] = null; } else { client.Active = false; } Monitor.PulseAll(clients); return; } } }
/// <summary> /// Disposes the write client. /// </summary> /// <param name="client">The client.</param> public void DisposeWriteClient(RedisNativeClient client) { lock (clients) { client.Active = false; } }
/// <summary> /// Disposes the write client. /// </summary> /// <param name="client">The client.</param> public void DisposeWriteClient(RedisNativeClient client) { lock (writeClients) { client.Deactivate(); PulseAllWrite(); } }
/// <summary> /// Disposes the write client. /// </summary> /// <param name="client">The client.</param> public void DisposeWriteClient(RedisNativeClient client) { lock (writeClients) { client.Active = false; Monitor.PulseAll(writeClients); } }
/// <summary> /// Disposes the read only client. /// </summary> /// <param name="client">The client.</param> public void DisposeReadOnlyClient(RedisNativeClient client) { lock (readClients) { client.Deactivate(); PulseAllRead(); } }
/// <summary> /// Disposes the read only client. /// </summary> /// <param name="client">The client.</param> public void DisposeReadOnlyClient(RedisNativeClient client) { lock (readClients) { client.Active = false; Monitor.PulseAll(readClients); } }
public void DisposeClient(RedisNativeClient client) { lock (readClients) { for (var i = 0; i < readClients.Length; i++) { var readClient = readClients[i]; if (client != readClient) { continue; } if (client.IsDisposed) { readClients[i] = null; } else { client.TrackThread = null; client.Active = false; } Monitor.PulseAll(readClients); return; } } lock (writeClients) { for (var i = 0; i < writeClients.Length; i++) { var writeClient = writeClients[i]; if (client != writeClient) { continue; } if (client.IsDisposed) { writeClients[i] = null; } else { client.TrackThread = null; client.Active = false; } Monitor.PulseAll(writeClients); return; } } //Client not found in any pool, pulse both pools. lock (readClients) Monitor.PulseAll(readClients); lock (writeClients) Monitor.PulseAll(writeClients); }
public static void RedisIncrement() { using (IRedisNativeClient nrc = new RedisNativeClient()) { nrc.Del("Increment"); for (int i = 0; i < iterations; i++) { nrc.Incr("Increment"); } } }
public void DisposeClient(RedisNativeClient client) { lock (clients) { for (var i = 0; i < clients.Length; i++) { var writeClient = clients[i]; if (client != writeClient) { continue; } client.Active = false; return; } } }
public void DisposeClient(RedisNativeClient client) { lock (readClients) { for (var i = 0; i < readClients.Length; i++) { var readClient = readClients[i]; if (client != readClient) { continue; } client.Active = false; Monitor.PulseAll(readClients); return; } } lock (writeClients) { for (var i = 0; i < writeClients.Length; i++) { var writeClient = writeClients[i]; if (client != writeClient) { continue; } client.Active = false; Monitor.PulseAll(writeClients); return; } } //Console.WriteLine("Couldn't find {0} client with Id: {1}, readclients: {2}, writeclients: {3}", // client.IsDisposed ? "Disposed" : "Undisposed", // client.Id, // string.Join(", ", readClients.ToList().ConvertAll(x => x != null ? x.Id.ToString() : "").ToArray()), // string.Join(", ", writeClients.ToList().ConvertAll(x => x != null ? x.Id.ToString() : "").ToArray())); if (client.IsDisposed) { return; } throw new NotSupportedException("Cannot add unknown client back to the pool"); }
/// <summary> /// Disposes the read only client. /// </summary> /// <param name="client">The client.</param> public void DisposeReadOnlyClient( RedisNativeClient client ) { lock( readClients ) { client.Active = false; Monitor.PulseAll( readClients ); } }
public void DisposeClient(RedisNativeClient client) { lock (readClients) { for (var i = 0; i < readClients.Length; i++) { var readClient = readClients[i]; if (client != readClient) continue; client.Active = false; Monitor.PulseAll(readClients); return; } } lock (writeClients) { for (var i = 0; i < writeClients.Length; i++) { var writeClient = writeClients[i]; if (client != writeClient) continue; client.Active = false; Monitor.PulseAll(writeClients); return; } } //Client not found in any pool, pulse both pools. lock (readClients) Monitor.PulseAll(readClients); lock (writeClients) Monitor.PulseAll(writeClients); }
public ExpectStringCommand(RedisNativeClient client) : base(client) { }
public ExpectDoubleCommand(RedisNativeClient client) : base(client) { }
public ExpectMultiDataCommand(RedisNativeClient client) : base(client) { }
/// <summary> /// Disposes the write client. /// </summary> /// <param name="client">The client.</param> public void DisposeWriteClient(RedisNativeClient client) { lock (clients) { client.Active = false; } }
public void Benchmark_SET_raw_bytes_1k_ServiceStack() { var redis = new RedisNativeClient(); Run("ServiceStack.Redis 1K", 1000, (i, bytes) => redis.Set("eitan" + i.ToString(), bytes)); }
Task<IRedisNativeClient> ConnectClient() { _logger.ToDebugLog(string.Format("Connecting to the locking node {0}:{1}...", _node.Host, _node.Port)); var connection = new RedisNativeClient(_node.Host, (int)_node.Port) { ConnectTimeout = (int)_node.ConnectTimeoutMillis, SendTimeout = (int)_node.SyncOperationsTimeoutMillis, ReceiveTimeout = (int)_node.SyncOperationsTimeoutMillis }; _logger.ToDebugLog(string.Format("Connected to the locking node {0}:{1}", _node.Host, _node.Port)); return connection.FromResult<IRedisNativeClient>(); }
public ExpectDoubleCommand(RedisNativeClient client) : base(client) { }
public ExpectIntCommand(RedisNativeClient client) : base(client) { }
public ExpectSuccessCommand(RedisNativeClient client) : base(client) { }
public PipelineCommand(RedisNativeClient client) { client_ = client; }
/// <summary> /// Disposes the write client. /// </summary> /// <param name="client">The client.</param> public void DisposeWriteClient( RedisNativeClient client ) { lock( writeClients ) { client.Active = false; Monitor.PulseAll( writeClients ); } }
public RedisPipelineCommand(RedisNativeClient client) { this.client = client; }
public void Run(string name, int nBlockSizeBytes, Action<int, byte[]> fn) { Stopwatch sw; long ms1, ms2, interval; int nBytesHandled = 0; int nMaxIterations = 5; byte[] pBuffer = new byte[nBlockSizeBytes]; // Create Redis Wrapper var redis = new RedisNativeClient(); // Clear DB redis.FlushAll(); sw = Stopwatch.StartNew(); ms1 = sw.ElapsedMilliseconds; for (int i = 0; i < nMaxIterations; i++) { fn(i, pBuffer); nBytesHandled += nBlockSizeBytes; } ms2 = sw.ElapsedMilliseconds; interval = ms2 - ms1; // Calculate rate double dMBPerSEc = nBytesHandled / 1024.0 / 1024.0 / (interval / 1000.0); Console.WriteLine(name + ": Rate {0:N4}, Total: {1}ms", dMBPerSEc, ms2); }
public ExpectStringCommand(RedisNativeClient client) : base(client) { }
public void DisposeClient(RedisNativeClient client) { lock (clients) { for (var i = 0; i < clients.Length; i++) { var writeClient = clients[i]; if (client != writeClient) continue; if (client.IsDisposed) { clients[i] = null; } else { client.Active = false; } Monitor.PulseAll(clients); return; } } }
public ExpectIntCommand(RedisNativeClient client) : base(client) { }
public ExpectWordCommand(RedisNativeClient client, string word) : base(client) { word_ = word; }
public ExpectWordCommand(RedisNativeClient client, string word) : base(client) { word_ = word; }
public ExpectMultiDataCommand(RedisNativeClient client) : base(client) { }
public PipelineCommand(RedisNativeClient client) { client_ = client; }
public void DisposeClient(RedisNativeClient client) { lock (readClients) { for (var i = 0; i < readClients.Length; i++) { var readClient = readClients[i]; if (client != readClient) continue; client.Active = false; Monitor.PulseAll(readClients); return; } } lock (writeClients) { for (var i = 0; i < writeClients.Length; i++) { var writeClient = writeClients[i]; if (client != writeClient) continue; client.Active = false; Monitor.PulseAll(writeClients); return; } } //Console.WriteLine("Couldn't find {0} client with Id: {1}, readclients: {2}, writeclients: {3}", // client.IsDisposed ? "Disposed" : "Undisposed", // client.Id, // string.Join(", ", readClients.ToList().ConvertAll(x => x != null ? x.Id.ToString() : "").ToArray()), // string.Join(", ", writeClients.ToList().ConvertAll(x => x != null ? x.Id.ToString() : "").ToArray())); if (client.IsDisposed) return; throw new NotSupportedException("Cannot add unknown client back to the pool"); }
public ExpectSuccessCommand(RedisNativeClient client) : base(client) { }
public RedisPipelineCommand(RedisNativeClient client) { this.client = client; }
/// <summary> /// 从连接池中关闭一个客户端 /// </summary> /// <param name="client"></param> public void DisposeClient(RedisNativeClient client) { bool hit = false; lock (writeClients) { for (var i = 0; i < writeClients.Length; i++) { var writeClient = writeClients[i]; if (client != writeClient) { if (writeClient != null && writeClient.Active == false && DateTime.Now - writeClient.InactiveTime > TimeSpan.FromMinutes(1)) { if (writeClient.IsDisposed == false) { writeClient.DisposeConnection(); } writeClient = null; Monitor.PulseAll(writeClients); } continue; } hit = true; client.Active = false; client.InactiveTime = DateTime.Now; Monitor.PulseAll(writeClients); } } if (hit == true) return; lock (readClients) { for (var i = 0; i < readClients.Length; i++) { var readClient = readClients[i]; if (client != readClient) { if (readClient != null && readClient.Active == false && DateTime.Now - readClient.InactiveTime > TimeSpan.FromMinutes(1)) { if (readClient.IsDisposed == false) { readClient.DisposeConnection(); } readClient = null; Monitor.PulseAll(writeClients); } continue; } hit = true; client.Active = false; client.InactiveTime = DateTime.Now; //更新锁 Monitor.PulseAll(readClients); return; } } //Console.WriteLine("Couldn't find {0} client with Id: {1}, readclients: {2}, writeclients: {3}", // client.IsDisposed ? "Disposed" : "Undisposed", // client.Id, // string.Join(", ", readClients.ToList().ConvertAll(x => x != null ? x.Id.ToString() : "").ToArray()), // string.Join(", ", writeClients.ToList().ConvertAll(x => x != null ? x.Id.ToString() : "").ToArray())); if (hit || client.IsDisposed) return; throw new NotSupportedException("Cannot add unknown client back to the pool"); }