Rumah >pangkalan data >Redis >Apakah kaedah yang digunakan dalam reka bentuk nilai kunci Redis?
Nama kunci yang disimpan dalam Redis tidak diseragamkan dan lebih sewenang-wenangnya; 🎜 >
Kunci teragih: Gunakan fungsi setnx Redis untuk menulis kunci teragih, komponen sumber terbuka biasa seperti redisson;
Boleh dikatakan bahawa apabila ia berkaitan dengan pengoptimuman prestasi redis dalam talian, reka bentuk kunci yang tidak munasabah sering menjadi punca masalah Pada dasarnya, dari apa yang saya lihat secara peribadi, kebanyakan Apabila pelajar menggunakan redis, mereka hampir tiada konsep reka bentuk kunci, kerana senario yang kebanyakan pelajar gunakan ialah kunci/val, dan struktur data yang sepadan ialah kunci rentetan/rentetan valGunakan jenis rentetan sebagai kunci dan pengekodan asas termasuk int, embstr dan mentah, yang boleh mengurangkan penggunaan memori dengan berkesan. Menggunakan embstr boleh memproses rentetan yang lebih kecil daripada 44 bait dengan jejak memori yang lebih kecil kerana ia menggunakan ruang memori berterusan
Nilai kunci tunggal adalah kurang daripada 10KB;
2. Cuba elakkan bigkey
1 Apakah bigkey?Apabila melaksanakan permintaan baca pada BigKey, sejumlah kecil QPS boleh menyebabkan penggunaan lebar jalur menjadi penuh, menyebabkan Redis instance dan juga mesin fizikal di mana ia berada untuk memperlahankan; tika Redis di mana BigKey terletak jauh lebih tinggi daripada kejadian lain, dan sumber memori serpihan data tidak dapat dicapai
Operasi pada cincang, senarai, zset, dsb. dengan banyak elemen akan mengambil masa yang lama dan menyebabkan utas utama disekat; >Tekanan CPU
Siri data dan penyahserikan BigKey akan menyebabkan penggunaan CPU melonjak, menjejaskan kejadian Redis dan aplikasi tempatan yang lain; >3. Bagaimana untuk menemui BigKey
Laksanakan perintah redis-cli --bigkeys pada mesin yang dipasang
Menggunakan parameter --bigkeys yang disediakan oleh redis-cli, anda boleh melintasi dan menganalisis semua kunci, dan mengembalikan maklumat statistik keseluruhan Kunci dan kunci besar Top1 setiap data
Tulis program melalui imbasan
Gunakan alatan pihak ketiga
Pilihan 1: kunci ialah usrId, nilai ialah rentetan bersiri objek, struktur data adalah serupa dengan yang berikut; 🎜>
Kelebihan: penggunaan memori yang kecil dan operasi yang cekap;
Pilihan 3: Gunakan struktur cincang untuk cache objek, data adalah seperti berikut; dan boleh mengakses mana-mana medan objek secara fleksibel ;
[Cadangan] Satu panggilan perniagaan memerlukan akses kepada berbilang pelayan redis, dan saluran paip atau kaedah operasi kelompok lain boleh digunakan; , Hash, storan Kuantitinya banyak. Apabila mengambil sejumlah besar elemen, kelewatan yang besar akan berlaku, menyekat pelaksanaan arahan lain. Adalah disyorkan untuk membahagikannya kepada beberapa senarai kecil, set atau jadual cincang
Gunakan spesifikasi perniagaan
Redis sesuai untuk senario yang lebih banyak membaca dan kurang menulis Jika terdapat senario pertanyaan berfrekuensi tinggi dan berfrekuensi rendah, ia tidak disyorkan
Apabila kunci tidak pasti Apabila tiba masa kelangsungan hidup, sebaiknya tetapkan masa tamat tempoh untuk mengawal kitaran hayat kunci;Anda harus mempertimbangkan pemisahan data panas dan sejuk Untuk pertanyaan, gunakan Redis untuk pertanyaan perniagaan frekuensi tinggi dan pertimbangkan untuk menggunakan pangkalan data untuk pertanyaan frekuensi rendah
Apabila program memproses data, Perlu dipertimbangkan bahawa Redis mempunyai risiko kehilangan data, jadi perlu untuk memuatkan secara automatik dan menyimpan data yang hilang dari pangkalan data ke Redis
Gunakan arahan O(N) dengan berhati-hati, seperti senarai, set, data cincang Semasa menjalankan operasi struktur, hgetall, lrange, smembers, zrange, dsb. tidak boleh digunakan Keutamaan diberikan kepada penggunaan hscan, sscan dan zscan .
Atas ialah kandungan terperinci Apakah kaedah yang digunakan dalam reka bentuk nilai kunci Redis?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!