Ringkasan perintah Redis biasa: termasuk ringkasan kerumitan masa dan struktur data yang digunakan dalam Redis untuk jenis data tertentu; 🎜>Memahami Redis: Memahami ingatan dan menyekat; semua yang diperkenalkan sebelum ini boleh digunakan sebagai teknik, dan ini harus menjadi sebahagian daripada Tao; amalan. Termasuk reka bentuk cache dan perangkap biasa.
Mari mulakan bahagian pertama dan lihat sekali lagi pada Redis.
Kandungan siri ini adalah berdasarkan: redis-3.2.12
Redis bukan ubat penawar
Semasa temu bual, saya sering diminta membandingkan kelebihan dan kekurangan daripada Redis dan Memcache Secara peribadi, saya rasa Kedua-duanya tidak sesuai untuk perbandingan Satu adalah pangkalan data bukan perhubungan yang bukan sahaja boleh cache tetapi juga melakukan perkara lain, dan satu lagi hanya digunakan untuk caching. Redis sering digunakan sebagai cache, yang merupakan sebab utama mengapa kami sering membandingkannya dengan teknologi lain. Jadi apa yang boleh Redis lakukan? Apa yang anda tidak boleh buat?
Redis boleh melakukan apa sahaja
mencache Tidak dinafikan bahawa ini adalah senario penggunaan Redis yang paling terkenal hari ini. Ia sangat berkesan dalam meningkatkan prestasi pelayan;
Senarai kedudukan Jika anda menggunakan pangkalan data hubungan tradisional untuk melakukan ini, ia akan menjadi sangat menyusahkan, tetapi menggunakan struktur data SortSet boleh menjadi sangat mudah; >
Kalkulator/penghad kelajuan, menggunakan operasi penambahan automatik atom dalam Redis, kami boleh mengira bilangan suka pengguna, lawatan pengguna, dll. Jika anda menggunakan MySQL untuk jenis operasi ini, membaca dan menulis yang kerap akan membawa banyak manfaat Tekanan; Senario penggunaan biasa pengehad kelajuan adalah untuk mengehadkan kekerapan akses pengguna kepada API tertentu termasuk pembelian panik untuk mengelakkan tekanan yang tidak perlu daripada klik gila pengguna , menggunakan koleksi Beberapa arahan, seperti persimpangan, kesatuan, perbezaan, dsb. Ia boleh mengendalikan fungsi seperti rakan bersama dan hobi biasa dengan mudah; Baris gilir mesej ringkas, sebagai tambahan kepada mod penerbitan/langganan Redis sendiri, kami juga boleh menggunakan Senarai untuk melaksanakan mekanisme baris gilir, seperti: pemberitahuan ketibaan, Keperluan seperti penghantaran e-mel tidak memerlukan kebolehpercayaan yang tinggi, tetapi akan membawa banyak tekanan DB boleh digunakan untuk melengkapkan penyahgandingan tak segerak Perkongsian sesi, mengambil PHP sebagai contoh, Sesi lalai disimpan Dalam. fail pelayan, jika ia adalah perkhidmatan kluster, pengguna yang sama mungkin mendarat pada mesin yang berbeza, yang akan menyebabkan pengguna kerap log masuk selepas menggunakan Redis untuk menyimpan sesi, pengguna boleh mendapatkan maklumat yang sepadan tidak kira mesin yang dia mendarat; pada. Apa yang tidak boleh dilakukan oleh RedisWalaupun Redis kaya dengan fungsi, ia tidak mahakuasa Ia sesuai untuk bidang khususnya dan boleh mendapat dua kali ganda hasil dengan separuh usaha. Jika disalahgunakan, ia boleh menyebabkan ketidakstabilan sistem, peningkatan kos dan masalah lain. Contohnya, Redis digunakan untuk menyimpan maklumat pengguna asas Walaupun ia boleh menyokong kegigihan, penyelesaian kegigihannya tidak dapat menjamin pendaratan mutlak data, dan juga boleh menyebabkan prestasi Redis menurun kerana kegigihan yang terlalu kerap meningkatkan tekanan pada perkhidmatan Redis. Ringkasan ringkas ialah perniagaan dengan jumlah data yang terlalu besar dan kekerapan akses data yang sangat rendah tidak sesuai untuk menggunakan data yang terlalu besar akan meningkatkan kos dan kekerapan akses terlalu rendah adalah pembaziran sumber.Anda sentiasa perlu mencari sebab untuk pilihan anda
Beberapa senario penggunaan Redis yang dinyatakan di atas, jadi terdapat banyak pilihan lain untuk penyelesaian kepada perkara ini senario, seperti caching Menggunakan Memcache, perkongsian sesi juga boleh dilaksanakan dengan MySql, dan baris gilir mesej boleh dilaksanakan dengan RabbitMQ.
Pantas, berdasarkan memori sepenuhnya, dilaksanakan dalam bahasa C, lapisan rangkaian menggunakan epoll untuk menyelesaikan masalah konkurensi yang tinggi, model berbenang tunggal mengelakkan suis konteks dan keadaan perlumbaan yang tidak perlu Nota: benang tunggal hanya merujuk kepada rangkaian Modul permintaan menggunakan permintaan untuk memproses permintaan pelanggan Seperti kegigihan, ia akan membuka semula urutan/proses untuk memproses
Jenis data yang kaya Sudah tentu, yang utama adalah biasa digunakan Terdapat lima jenis: String, Hash, List, Set dan SortSet Mereka semua menyusun data berdasarkan nilai utama. Setiap jenis data menyediakan set perintah operasi yang sangat kaya, yang boleh memenuhi kebanyakan keperluan Jika anda mempunyai keperluan khas, anda juga boleh membuat arahan baharu sendiri melalui skrip Lua (dengan atomicity
Selain jenis data kaya yang disediakan, Redis juga menyediakan fungsi diperibadikan seperti analisis pertanyaan perlahan, ujian prestasi, Saluran Paip, urus niaga, arahan tersuai Lua, Peta Bit, HyperLogLog, terbitkan/langgan, Geo, dsb.
Kod Redis adalah sumber terbuka pada GitHub Kod ini sangat mudah dan elegan, dan sesiapa sahaja boleh memahami kod sumbernya juga sangat mudah, tanpa sebarang kebergantungan sistem; komuniti aktif, pelbagai Sokongan bahasa klien juga sangat lengkap. Di samping itu, ia juga mempunyai sokongan transaksi (belum cuba lagi), ketekunan, replikasi tuan-hamba dan fungsi lain, merealisasikan kemungkinan ketersediaan tinggi dan pemprosesan yang diedarkan.
Sebagai pembangun, perkara yang kami gunakan tidak boleh dijadikan kotak hitam.
Atas ialah kandungan terperinci Apakah senario penggunaan Redis?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!