Есть ли способ напечатать количество ключей в Redis?
Я в курсе
keys *
Но это кажется немного тяжелым весом. - Учитывая, что Redis является хранилищем ключей, возможно, это единственный способ сделать это. Но я все еще хотел бы видеть что-то вроде
count keys *
Ответы:
Вы можете выполнить команду INFO, которая возвращает информацию и статистику о сервере. Смотрите здесь для примера вывода.
Как уже упоминалось в комментариях mVChr, вы можете использовать
info keyspace
непосредственно на Redis-Cli.источник
redis-cli INFO Keyspace | grep ^db
DBSIZE
возвращает количество ключей и их легче разобрать.Недостаток: если срок действия ключа истек, он все равно может считаться.
http://redis.io/commands/dbsize
источник
KEYS *
выселяет просроченный ключ. Также Redis может активно высылать некоторые просроченные ключи, но не обязательно все из них.ВНИМАНИЕ: Не запускайте это на производственном оборудовании.
На коробке Linux:
Примечание. Как упоминалось в комментариях ниже, это операция O (N), поэтому на большой БД с большим количеством ключей ее не следует использовать. Для небольших развертываний, это должно быть хорошо.
источник
Для подсчета общего количества ключей используйте следующую команду:
источник
использовать
DBSIZE
это не даст вам ключачитать больше http://redis.io/commands/dbsize
источник
Начиная с Redis 2.6, lua поддерживается, вы можете получить несколько таких символов
см. команду eval
источник
KEYS
для подсчета ключей (с префиксом или без) - это все равно, что выбросить ребенка с водой.#
в этом коде есть оператор длины .dbsize()
возвращает общее количество ключей.Вы можете быстро оценить количество ключей, соответствующих данному шаблону, выбрав ключи случайным образом, а затем проверив, какая их часть соответствует шаблону.
Пример на питоне; считая все ключи, начинающиеся с
prefix_
:Даже
iter=100
дает достойную оценку в моем случае, но очень быстро, по сравнению сkeys prefix_
.Улучшение состоит в том, чтобы отбирать 1000 ключей для каждого запроса, но сохранять общее количество, чтобы после двух запросов вы делили на 2000, а после трех запросов - на 3000. Таким образом, если ваше приложение заинтересовано в общем количестве сопоставления ключей довольно часто, то каждый раз он будет все ближе и ближе к истинному значению.
источник
После Redis 2.6 результат команды INFO делится на разделы. В разделе «пространство ключей» есть поля «ключи» и «ключи с истекшим сроком действия», чтобы указать количество ключей.
источник
источник