dbsize()
повертає загальну кількість клавіш.
Ви можете швидко оцінити кількість клавіш, що відповідають заданому шаблону, вибірково відбираючи ключі, а потім перевіряти, яка частка з них відповідає шаблону.
Приклад в пітоні; підрахунок всіх ключів, починаючи з prefix_
:
import redis
r = redis.StrictRedis(host = 'localhost', port=6379)
iter=1000
print 'Approximately', r.dbsize() * float(sum([r.randomkey().startswith('prefix_') for i in xrange(iter)])) / iter
Навіть iter=100
дає гідну оцінку в моєму випадку, але це дуже швидко, порівняно з keys prefix_
.
Удосконалення полягає в вибірці 1000 ключів на кожен запит, але зберігайте загальну кількість, так що після двох запитів ви поділитесь на 2000, після трьох запитів ви розділите на 3000. Таким чином, якщо вашу заяву цікавить загальна кількість співставлення ключів досить часто, то кожного разу воно наближатиметься та наближається до справжнього значення.