Jawaban untuk pertanyaan itu coba hapus beberapa kunci dalam satu DEL
. Namun, kunci yang cocok dengan pola yang diberikan mungkin TIDAK terletak di slot yang sama, dan Redis Cluster TIDAK mendukung perintah multi-kunci jika kunci ini tidak termasuk dalam slot yang sama. Itu sebabnya Anda mendapatkan pesan kesalahan.
Untuk memperbaiki masalah ini, Anda perlu DEL
kunci ini satu per satu:
redis-cli --scan --pattern "foo*" |xargs -L 1 redis-cli del
-L
opsi untuk xargs
perintah menentukan jumlah kunci yang akan dihapus. Anda perlu menentukan opsi ini sebagai 1
.
Untuk menghapus semua kunci yang cocok dengan pola, Anda juga perlu menjalankan perintah di atas untuk setiap node master di cluster Anda.
CATATAN
-
Dengan perintah ini, Anda harus menghapus kunci ini satu per satu, dan itu mungkin sangat lambat. Anda perlu mempertimbangkan untuk mendesain ulang database Anda, dan menggunakan tag hash untuk membuat kunci yang cocok dengan pola menjadi milik slot yang sama. Sehingga Anda dapat menghapus kunci ini dalam satu
DEL
. -
Entah
SCAN
atauKEYS
perintah tidak efisien, terutama,KEYS
tidak boleh digunakan dalam produksi. Anda perlu mempertimbangkan untuk membuat indeks untuk kunci ini.