Saya memiliki array kunci seperti ["aaa","bbb","ccc"] jadi saya ingin menghapus semua kunci ini dari redis menggunakan satu perintah. Saya tidak ingin mengulangi menggunakan loop . Saya membaca tentang perintah redis DEL dan di terminal redis-client berfungsi tetapi menggunakan nodejs tidak berfungsi
Redisclient.del(TokenKeys,fungsi(err,hitung){
Logger.info("hitungan adalah ",hitung)
Logger.error("err adalah ",err)
})
di mana tokenKeys=["aaa","bbb","ccc"] , kode ini berfungsi jika saya mengirim satu kunci seperti tokenKeys="aaa"
client.del
dapat mengambil sejumlah variabel argumen. Anda dapat menggunakan apply
untuk mengonversi array Anda menjadi argumen (tetapi Anda juga harus mendorong panggilan balik Anda). Ini akan terlihat seperti ini:
var tokenKeys = ["aaa","bbb","ccc"];
tokenKeys.push(function(err,count){
Logger.info("count is ",count)
Logger.error("err is ",err)
});
Redisclient.del.apply(Redisclient,tokenKeys);
Agak aneh, tapi itu akan mendapatkan pekerjaan tanpa iterasi.
@abhaygarg Ini harus bekerja di luar kotak seperti yang Anda tulis. Bisakah Anda memberikan lebih banyak kode Anda? Saya kira kesalahannya ada di suatu tempat di kode Anda. Dan versi apa yang Anda gunakan?
@stockholmux ini bukan solusi untuk masalah ini. Sebenarnya lebih baik menggunakan notasi array segera daripada menggunakan argumen (mereka akan ditulis ulang ke internal array).
ya itu berfungsi, Anda dapat langsung mengirimkan array di Redisclient.del(tokenKeys,function(err,count){
Logger.info("hitungan adalah ",hitung)
Logger.error("err adalah ",err)
})
itu hapus dengan baik, Anda dapat melewati array di Redisclient.del() itu berfungsi dengan baik
app.redis.keys('key_*', (err, keys) => {
keys.forEach(key => {
app.redis.del(key)
})
})
@knoxcard FYI - Jangan gunakan KUNCI - berbahaya pada sistem produksi besar.