Apakah ada cara untuk mencetak jumlah kunci di Redis?
saya sadar atas
keys *
Namun bobotnya sepertinya agak berat. - Mengingat bahwa Redis adalah toko nilai kunci mungkin ini adalah satu-satunya cara untuk melakukannya. Tapi aku masih ingin melihat sesuatu seperti itu
count keys *
Jawaban:
Anda dapat mengeluarkan perintah INFO, yang mengembalikan informasi dan statistik tentang server. Lihat di sini untuk contoh keluaran.
Seperti disebutkan dalam komentar oleh mVChr, Anda dapat menggunakan
info keyspace
langsung pada redis-cli.sumber
redis-cli INFO Keyspace | grep ^db
DBSIZE
mengembalikan jumlah kunci dan lebih mudah untuk diuraikan.Kelemahan: jika kunci telah kedaluwarsa, mungkin masih dihitung.
http://redis.io/commands/dbsize
sumber
KEYS *
usir kunci yang kadaluarsa. Redis juga dapat secara aktif mengusir beberapa kunci kedaluwarsa, tetapi tidak harus semuanya.PERINGATAN: Jangan jalankan ini di mesin produksi.
Di kotak Linux:
Catatan: Seperti disebutkan dalam komentar di bawah, ini adalah operasi O (N), jadi pada DB besar dengan banyak kunci Anda tidak boleh menggunakan ini. Untuk penyebaran yang lebih kecil, itu harus baik-baik saja.
sumber
Untuk mendapatkan jumlah total kunci, gunakan perintah di bawah ini:
sumber
gunakan
DBSIZE
ini tidak akan memberi Anda kunciuntuk membaca lebih lanjut http://redis.io/commands/dbsize
sumber
Sejak Redis 2.6, lua didukung, Anda bisa mendapatkan sejumlah kunci wildcard seperti ini
lihat perintah eval
sumber
KEYS
untuk menghitung kunci (dengan atau tanpa awalan) seperti membuang bayi keluar dengan air mandi.#
dalam kode ini adalah operator panjang .dbsize()
mengembalikan jumlah kunci.Anda dapat dengan cepat memperkirakan jumlah kunci yang cocok dengan pola yang diberikan dengan mengambil sampel kunci secara acak, lalu memeriksa fraksi mana yang cocok dengan pola tersebut.
Contoh dalam python; menghitung semua kunci dimulai dengan
prefix_
:Bahkan
iter=100
memberikan perkiraan yang layak dalam kasus saya, namun sangat cepat, dibandingkan dengankeys prefix_
.Perbaikan adalah untuk sampel 1000 kunci pada setiap permintaan, tetapi pertahankan jumlah total, sehingga setelah dua permintaan Anda akan membagi dengan 2000, setelah tiga permintaan Anda akan membagi dengan 3.000. Dengan demikian, jika aplikasi Anda tertarik pada jumlah total kunci yang cocok cukup sering, maka setiap kali akan semakin dekat dan semakin dekat dengan nilai sebenarnya.
sumber
Setelah Redis 2.6, hasil dari perintah INFO dipisahkan oleh bagian-bagian. Di bagian "keyspace", ada bidang "keys" dan "expired keys" untuk mengetahui berapa banyak kunci yang ada.
sumber
sumber