Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Cara menghapus kunci yang cocok dengan pola di Redis Cluster

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

  1. 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 .

  2. Entah SCAN atau KEYS perintah tidak efisien, terutama, KEYS tidak boleh digunakan dalam produksi. Anda perlu mempertimbangkan untuk membuat indeks untuk kunci ini.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Serialisasi redis diawali dengan string ekstra

  2. Redis publish/subscribe:lihat channel apa yang saat ini disubscribe

  3. DB relasional dalam memori?

  4. Kesalahan seledri:hasil. dapatkan waktu habis

  5. Bagaimana cara memeriksa nil/null di Redis' Lua cjson?