dbsize()
trả về tổng số khóa
Bạn có thể nhanh chóng ước tính số lượng khóa khớp với một mẫu nhất định bằng cách lấy mẫu các khóa một cách ngẫu nhiên, sau đó kiểm tra phần nào của chúng khớp với mẫu đó.
Ví dụ trong trăn; đếm tất cả các khóa bắt đầu bằng 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
Thậm chí iter=100
đưa ra một ước tính khá trong trường hợp của tôi, nhưng rất nhanh, so với keys prefix_
.
Một cải tiến là lấy mẫu 1000 khóa cho mỗi yêu cầu, nhưng giữ tổng số, để sau hai yêu cầu bạn sẽ chia cho 2000, sau ba yêu cầu bạn sẽ chia cho 3000. Do đó, nếu ứng dụng của bạn quan tâm đến tổng số của các khóa khớp khá thường xuyên, sau đó mỗi lần nó sẽ càng ngày càng gần với giá trị thực.