in scripts/extract_redis_commands_argcounts.php [42:68]
function categorize(array $command, string $commandName): string {
$minKeyCount = 0;
$maxKeyCount = 0;
$minArgCount = 0;
$maxArgCount = 0;
$arguments = $command['arguments'] ?? [];
foreach ($arguments as $arg) {
$data = categorize_arg($arg, $commandName);
$minKeyCount += ($data['min_key'] ?? 0);
$maxKeyCount += ($data['max_key'] ?? 0);
$minArgCount += ($data['min_arg'] ?? 0);
$maxArgCount += ($data['max_arg'] ?? 0);
}
if (in_array($commandName, ['DEL', 'MGET', 'MSET', 'TOUCH', 'UNLINK'])) {
return "keyn";
}
if ($maxKeyCount > $minKeyCount || $maxArgCount > $minArgCount) {
// return "key${minKeyCount}_argx";
return "key1_argx";
}
// Assume that
// min=max for arg and key
if ($minArgCount > 0 && $minKeyCount >= 2) {
return "key1_arg" . ($minArgCount + $maxKeyCount - 1);
}
return "key${minKeyCount}_arg" . $minArgCount;
}