Add max redis response time for reads

This commit is contained in:
Ajay 2024-09-13 04:06:50 -04:00
parent d28ac39d4f
commit 7678be1e24
3 changed files with 8 additions and 0 deletions

View file

@ -165,6 +165,7 @@ addDefaults(config, {
commandsQueueMaxLength: 3000,
stopWritingAfterResponseTime: 50,
responseTimePause: 1000,
maxReadResponseTime: 500,
disableHashCache: false,
clientCacheSize: 2000,
useCompression: false,

View file

@ -10,6 +10,7 @@ interface RedisConfig extends redis.RedisClientOptions {
maxWriteConnections: number;
stopWritingAfterResponseTime: number;
responseTimePause: number;
maxReadResponseTime: number;
disableHashCache: boolean;
clientCacheSize: number;
useCompression: boolean;

View file

@ -222,6 +222,12 @@ if (config.redis?.enabled) {
return;
}
if (config.redis.maxReadResponseTime && activeRequests > maxStoredTimes
&& readResponseTime[readResponseTime.length - 1] > config.redis.maxReadResponseTime) {
reject(new TooManyActiveConnectionsError(`Redis response time too high in general: ${readResponseTime[readResponseTime.length - 1]}ms with ${activeRequests} connections`));
return;
}
// For tracking
if (!shouldClientCacheKey(key)) memoryCacheUncachedMisses++;